1.Collection常用集合简介
单列集合包括list系列和set系列,list系列集合特点是有序、重复、有索引,set系列集合特点是无、不重复、无索引,其中list又分ArrayList和LinkedList,set又分Hashset和TreeSet,Hasheset还分linkedHashSet。
虽然单列集合有很多,但目前常用的有三种,一般默认使用ArrayList集合,使用HashSet去重,和TreeSet指定排序。arraylist底层为数组,因此根据索引地址查询快,有序,但增删慢,HashSet是基于哈希表,增删改查均较好,但元素不重复,无序无索引,而TreeSet是基于红黑树,增删查性能较好,不重复,无索引,但可指定排序方式。指定排序方式有两种,一种为自定义类中重写compareTo方法,一种为在treeset有参构造器中设置实现comparator接口对象。以下实例中运用的第二种方式。
2.应用实例
默认使用ArrayList集合存入几组数据,并使用HashSet去重,和TreeSet指定从大到小排序。
详细代码如下:
public class CollectionTest {
public static void main(String[] args) {
ArrayList<Integer> list=new ArrayList<>();
list.add(1);//自动装箱
list.add(1);//自动装箱
list.add(1);//自动装箱
list.add(3);//自动装箱
list.add(5);//自动装箱
list.add(2);//自动装箱
System.out.println("ArrayList集合:");
System.out.println(list);
// 1.利用HashSet去重
HashSet<Integer> hs=new HashSet<>();
hs.addAll(list);
System.out.println("去重后HashSet集合:");
System.out.println(hs);
// 2.利用TreeSet排序,从大到小
TreeSet<Integer> ts=new TreeSet<>((o1,o2) ->
// o1为需要存的元素,o2为在树中元素
o2-o1//o2>o1, o1元素存右边,<0(o2>o1)o1元素存左边
);
ts.addAll(hs);
System.out.println("定义从大到小排序后TreeSet集合:");
System.out.println(ts);
}
}