Collection集合API
单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的
Collection list = new ArrayList<>();//创建对象
API | 功能 |
---|---|
list.add("") | 添加 |
list.clear() | 清空 |
list.isEmpty() | 判断是否为空,为空返回true |
list.size() | 集合大小 |
list.contains("") | 判断集合中是否包含某个元素 |
list.remove("") | 删除某个元素,默认输出第一个 |
list.toArray() | 把集合转换成数组 |
c1.addAll(c2) | 将c2放入c1中 |
Collection集合的遍历方式
一、迭代器Iterator,集合专用
-
得到当前集合的迭代器对象
Iterator<String> it =lists.iterator(); //获取集合的迭代器 it.next();//转向下一个 it.hasNext();//询问当前位置有没有元素
-
定义while循环
while(it.hasNext()){
String elet=it.next();
System.out.println(elet);
}
//迭代器默认位置,指向当前索引为0
二、foreach/增强for循环
增强for循环:既可以遍历集合也可以遍历数组
实现Iterable接口的类才可以使用迭代器和增强for,Collection接口已经实现了Iterable接口
基本形式:
for(元素数据类型 变量名:数组或Collection集合){
//在此处使用变量即可,该变量就是元素
}
for(String ele :lists){
System.out.println(ele);
}
三、Lambda表达式
list.forEach(new Consumer<String>(){
@Override
public void accept(string s){
System.out.println(s);
}
})
lists.forEach(s->System.out.println(s))
lists.forEach(System.out::println);
Collections集合工具类
Collections工具类不是用来使用的集合,而是用来操作集合的工具类
-
批量添加
Collections.addAll(names,"name1","name2","name3");
-
打乱list集合顺序
Collection.shuffle(names);
-
将集合中元素按照默认规则排序list
Collection.sort(list);
-
自定义比较规则,注意要重写方法在实体类中,具体可见Set系列集合中的TreeSet的排序规则方式一
Collection.sort(Apple);
-
自定义比较方式一:Apple类重写比较规则
Collection.sort(apple,new Comparator <Apple>(){ @Override Public int Compare(Apple o1,Apple o2){ return Double.compare(o1.getPrice(),o2.getPrice();) } })
-
自定义比较方式二:sort方法自带比较器
Collections.sort(apple,(o1,o2)->Double.compare(o1.getPrice(),o2.getPrice()));