区别
Collection它是一个集合的接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在java类库当中有很多具体的实现。
Collection接口的意义就是为各种具体的集合提供最大化的统一操作方式。
主要实现的Collection接口的类有:Set、List、Queue
Coleections它是一个包装类。它包含了各种有关集合操作的静态多态方法。这个类是不能喝实例化的,就像Arrays类一样,是一个工具类,服务于Java当中的Collection框架
Collections中常用的属性
addAll(Collection<? super T> c, T… elements)
将所有指定的元素添加到指定的集合。
一次性可以给集合添加多个元素T… elements表示一次可以添加多个不定量的元素
import java.util.ArrayList;
import java.util.Collections;
public class Demo01 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("start");
Collections.addAll(list,"Xin","Chen","Yu","Chen","Xi");
System.out.println(list);
}
}
sort(List< T > list)
对指定的列表进行排序。(升序排序)
sort(List l ist, Comparator<? super T> c)
根据指定的比较器引起的顺序对指定的列表进行排序。
binarySearch(List<? extends Comparable<? super T>> list, T key)
使用二叉搜索算法搜索指定对象的指定列表,所以在使用这个方法的时候,一定呀提前给集合排好序
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class Demo02 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(4);
//调用Collections方法一次给指定集合添加多个元素
Collections.addAll(list, 2, 5, 3, 1);
System.out.println("初始默认的集合为:" + list);
Collections.sort(list);
System.out.println("使用sort()对集合进行排序" + list);
System.out.println("查找集合当中指定元素的索引(3)位置:"
+ Collections.binarySearch(list, 3));
//sort(List<T> list, Comparator<? super T> c) 根据自己的定义去给集合进行排序
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
System.out.println("使用sort()方法加上自己定义(从大到小)排序的" +
"方式对集合进行排序" + list);
}
}
swap(List<?> list, int i, int j)
交换指定列表中指定位置的元素。
copy(List<? super T> dest, List<? extends T> src)
将所有元素从一个src复制到另一个列表dest中。
在这里要注意到dest当中元素的数量必须大于等于src中数据的数量
import java.util.ArrayList;
import java.util.Collections;
public class Demo03 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(4);
//调用Collections方法一次给指定集合添加多个元素
Collections.addAll(list, 2, 5, 3, 1);
System.out.println("list初始默认的集合为:" + list);
Collections.swap(list, 0, 3);
System.out.println("将list当中索引为0和3位置的元素互到之后为:" + list);
//创建了一个新的集合
ArrayList<Integer> list1 = new ArrayList<>();
//给新集合添加了5个元素,因为我们想加个list中的元素复制到list1集合当中去
//所以list1中元素的数量必须大于等于list中的元素数量
Collections.addAll(list1, 100, 101, 102, 103, 104);
System.out.println("list1中原始数据:" + list1);
Collections.copy(list1, list);
System.out.println("经过copy方法,把list的元素覆盖到list1中的元素:" + list1);
}
}
emptyList()
返回为空的集合,是不能添加数据
若是添加会报异常的
它返回的是一个空集合,不能使用的,我们用于在判断的时候若是需要一个空集合就会调用这个得到一个空集合
max(Collection<? extends T> coll)
根据其元素的 自然顺序返回给定集合的最大元素。
max(Collection<? extends T> coll, Comparator<? super T> comp)
根据指定的比较器引发的顺序返回给定集合的最大元素。
min(Collection<? extends T> coll)
根据其元素的 自然顺序返回给定集合的最小元素
min(Collection<? extends T> coll, Comparator<? super T> comp)
根据指定的比较器引发的顺序返回给定集合的最小元素。
max和min就不再这做过多演示,很简单滴
fill(List<? super T> list, T obj)
用指定的元素代替指定列表的所有元素。
replaceAll(List list, T oldVal, T newVal)
将列表中一个指定值的所有出现替换为另一个。
reverse(List<?> list)
反转指定列表中元素的顺序
import java.util.ArrayList;
import java.util.Collections;
public class Demo05 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
Collections.addAll(list, "Xin", "Chen", "Yu", "Chen", "Xi");
System.out.println("原集合当中的数据为:" + list);
//reverse()方法反转集合当中所有的元素
Collections.reverse(list);
System.out.println("reverse()方法反转所有的元素后集合数据为:" + list);
//replaceAll()方法将指定集合当中的指定的所有元素替换为一个新的元素
Collections.replaceAll(list, "Xin", "Niu");
System.out.println("replaceAll()方法替换集合当中的指定元素" + list);
//fill()方法将集合当中的所有元素替换为指定元素
Collections.fill(list, "牛");
System.out.println("fill()方法替换集合当中的所有元素:" + list);
}
}