集合

发布时间 2023-12-12 06:28:57作者: califorium

列表

特点

-有序的Collection
-允许重复

主要实现

-ArrayList
-LinkList
-vector(同步)

ArrayList

以数组实现的列表,不支持同步,利用索引可以快速访问,不适合大规模的插入删除,适合变化不大的,主要查询的操作,每次扩容50%;

ArrayList <T> a1=new ArrayList<T>;
a1.add();
a1.get();
a1.remove(3);//删除第四个元素
a1.add(3,9);将9添加到第四个元素,后面元素后移

遍历方法:Iterator,索引遍历,for-each;
速度:for>索引>Iterator

以双向链表来实现,不支持同步,可以当作堆栈使用,插入和删除比较高效;
可以有addfirst;
遍历速度:for>索引>Iterator;

Vector

和ArrayList类似,Vector可以同步进行多线程;
遍历速度:for>索引>Iterator

set

  • 确定性
  • 互异性
  • 无序性

主要的类

  • HashSet
  • TreeSet
  • LinkedHashSet

HashSet

-基于HashMap实现,可以容纳NULL,不支持同步
一般常用的方法

  • add
  • clear
  • size
  • contains
  • remove
  • retainAll//查交集
HashSet <T> hs=new HashSet<T>;
//迭代器遍历
Interator<T> iter1 =hs.interator;
while(iter1..hasnext){
  inter1.next;
}

获取的方法:interator,for-each
获取速度 for>interator;

LinkedHashSet

基于HashMap实现,可以容纳NULL,不支持同步,方法基本与HashSet一致,通过双向链表维护插入顺序

TreeSet

基于TreeMap实现,不可容纳NULL元素,
通过compareTo或指定Comparator排序
从小到大输出
只能放入对象就是大数
equals,toString,hashCode三位一体的