1.区别:
>Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。
>Collection 是各种集合接口的父接口,继承它的接口主要有Set和List,提供了关于集合的一些操作,如删除,插入,判断一个元素是否是其成员,遍历等。
Collection 接口常用的方法
- size():返回集合中元素的个数
- add(Object obj):向集合中添加一个元素
- addAll(Colletion coll):将形参coll包含的所有元素添加到当前集合中
- isEmpty():判断这个集合是否为空
- clear():清空集合元素
- contains(Object obj):判断集合中是否包含指定的obj元素
① 判断的依据:根据元素所在类的equals()方法进行判断
②明确:如果存入集合中的元素是自定义的类对象,要去:自定义类要重写equals()方法 - constainsAll(Collection coll):判断当前集合中是否包含coll的所有元素
- rentainAll(Collection coll):求当前集合与coll的共有集合,返回给当前集合
- remove(Object obj):删除集合中obj元素,若删除成功,返回ture否则
- removeAll(Collection coll):从当前集合中删除包含coll的元素
- equals(Object obj):判断集合中的所有元素 是否相同
- hashCode():返回集合的哈希值
- toArray(T[] a):将集合转化为数组
①如有参数,返回数组的运行时类型与指定数组的运行时类型相同。 - iterator():返回一个Iterator接口实现类的对象,进而实现集合的遍历。
- 数组转换为集合:Arrays.asList(数组)
2.Collections方法:
>排序(sort):以根据元素的自然顺序 对指定列表按升序进行排序。列表中的所有元素都必须实现 Comparable接口。
ublic class Testlist1 {
public static void main(String[] args) {
List<Integer> list=new ArrayList<Integer>();
list.add(14);
list.add(16);
list.add(19);
list.add(15);
System.out.println(list);
System.out.println("排序后:");
Collections.sort(list); //对指定列表按升序排列
System.out.println(list);
}
}
运行结果:
[14, 16, 19, 15]
排序后:
[14, 15, 16, 19]
>逆序(reverse)
public static void main(String[] args) {
List<Integer> list=new ArrayList<Integer>();
list.add(14);
list.add(16);
list.add(19);
list.add(15);
System.out.println(list);
System.out.println("逆序后:");
Collections.reverse(list);
System.out.println(list);
}
运行结果:
[14, 16, 19, 15]
逆序后:
[15, 19, 16, 14]
>最值(max,min)
public static void main(String[] args) {
List<Integer> list=new ArrayList<Integer>();
list.add(14);
list.add(16);
list.add(19);
list.add(15);
System.out.println(list);
System.out.println("最大值为:");
System.out.println(Collections.max(list));
System.out.println("最小值为:");
System.out.println(Collections.min(list));
}
运行结果:
[14, 16, 19, 15]
最大值为:
19
最小值为:
14
>替换(Fill)
public static void main(String[] args) {
List<Integer> list=new ArrayList<Integer>();
list.add(14);
list.add(16);
list.add(19);
list.add(15);
System.out.println("替换前:");
System.out.println(list);
System.out.println("替换后:");
Collections.fill(list, 12);
System.out.println(list);
}
运行结果:
替换前:
[14, 16, 19, 15]
替换后:
[12, 12, 12, 12]
>拷贝(copy):将源数组数据复制到目标数组
public static void main(String[] args) {
List<Integer> list=new ArrayList<Integer>();
List<Integer> list1=new ArrayList<Integer>(Arrays.asList(new Integer[list.size()])); //list1是目标数组
list.add(14);
list.add(16);
list.add(19);
list.add(15);
System.out.println("拷贝前:");
System.out.println(list);
System.out.println("拷贝后:");
Collections.copy(list, list1);
for(Integer i:list) {
System.out.println(i);
}
}
运行结果
拷贝前:
[14, 16, 19, 15]
拷贝后:
14
16
19
15
>binarySearch(二分查找):查找指定集合中的元素,返回查找元素的索引。
public static void main(String[] args) {
List<Integer> list=new ArrayList<Integer>();
list.add(14);
list.add(16);
list.add(17);
list.add(18);
list.add(20);
System.out.println(list);
System.out.println(Collections.binarySearch(list, 18));
}
运行结果:
[14, 16, 17, 18, 20]
3
>replaceAll:替换指定集合的指定元素
public static void main(String[] args) {
List<Integer> list=new ArrayList<Integer>();
list.add(14);
list.add(16);
list.add(17);
list.add(18);
list.add(20);
System.out.println("替换前:");
System.out.println(list);
System.out.println("替换后:");
Collections.replaceAll(list, 17, 88);
System.out.println(list);
}
运行结果:
替换前:
[14, 16, 17, 18, 20]
替换后:
[14, 16, 88, 18, 20]
>swap(List list,int a,int b):交换指定集合中元素索引的位置;
public static void main(String[] args) {
List<Integer> list=new ArrayList<Integer>();
list.add(14);
list.add(16);
list.add(17);
list.add(18);
list.add(20);
System.out.println("交换前:");
System.out.println(list);
System.out.println("交换后:");
Collections.swap(list, 0,4);
System.out.println(list);
}
运行结果:
交换前:
[14, 16, 17, 18, 20]
交换后:
[20, 16, 17, 18, 14]
>
————————————————
https://blog.youkuaiyun.com/qq_41889292/article/details/79888930