Java 中 Set 与 List 有什么不同
时间:2018-11-14
本文章向大家介绍Java 中 Set 与 List 有什么不同,需要的朋友可以参考一下
1、Set 不允许重复,List允许重复 2、Set 没有顺序,List有顺序 List接口对Collection进行了简单的扩充, 它的具体实现类常用的有ArrayList和LinkedList。 你可以将任何东西放到一个List容器中, 并在需要时从中取出。 ArrayList从其命名中可以看出 它是一种类似数组的形式进行存储, 因此它的随机访问速度极快, 而LinkedList的内部实现是链表, 它适合于在链表中间 需要频繁进行插入和删除操作。 在具体应用时可以根据需要自由选择。 前面说的Iterator只能对容器进行向前遍历, 而ListIterator则继承了Iterator的思想, 并提供了对List进行双向遍历的方法。 Set接口也是Collection的一种扩展, 而与List不同的时, 在Set中的对象元素不能重复, 也就是说你不能把同样的东西 两次放入同一个Set容器中。 它的常用具体实现有HashSet和TreeSet类。 HashSet能快速定位一个元素, 但是你放到HashSet中的对象 需要实现hashCode()方法, 它使用了前面说过的哈希码的算法。 而TreeSet则将放入 其中的元素按序存放, 这就要求你放入 其中的对象是可排序的, 这就用到了集合框架提供的 另外两个实用类Comparable和Comparator。 一个类是可排序的, 它就应该实现Comparable接口。 有时多个类具有相同的排序算法, 那就不需要在每分别重复定义 相同的排序算法, 只要实现Comparator接口即可。 集合框架中还有两个很实用的公用类: Collections和Arrays。 Collections提供了对一个Collection容器 进行诸如排序、复制、查找和填充等 一些非常有用的方法, Arrays则是对一个数组进行类似的操作。
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释