1、Collections类
(1)特点
是一个操作set、list、map等集合的工具类
包含一系列静态方法,可以对集合进行排序、查询和修改等操作
2、常用方法
(1)排序
reverse:反转list集合中元素的顺序
@Test public void test (){ List list=new ArrayList(); list.add("123"); list.add("123"); list.add(123); list.add(111); list.add("mm"); Collections.reverse(list); System.out.println(list); }
[mm, 111, 123, 123, 123]
shuffle:对list集合元素进行随机排序
@Test public void test (){ List list=new ArrayList(); list.add("123"); list.add("123"); list.add(123); list.add(111); list.add("mm"); Collections.shuffle(list); System.out.println(list); }
[111, mm, 123, 123, 123]
swap(list,i,j):交换 i 和 j
@Test public void test (){ List list=new ArrayList(); list.add("123"); list.add("123"); list.add(123); list.add(111); list.add("mm"); Collections.swap(list,0,4); System.out.println(list); }
[mm, 123, 123, 111, 123]
sort:排序
@Test public void test (){ List list=new ArrayList(); list.add(3); list.add(123); list.add(123); list.add(111); list.add(1); Collections.sort(list); System.out.println(list); }
[1, 3, 111, 123, 123]
String类型的元素要书写比较器:
@Test public void test (){ List list=new ArrayList(); list.add("1211"); list.add("123"); list.add("a"); list.add("d"); list.add("c"); Collections.sort(list, new Comparator() { @Override public int compare(Object o1, Object o2) { String string1=(String)o1; String string2=(String)o2; return -string1.compareTo(string2); } }); System.out.println(list); }
[d, c, a, 123, 1211]
(2)比较
最大值、最小值
@Test public void test (){ List list=new ArrayList(); list.add(123); list.add(23); list.add(2); list.add(34); list.add(567); System.out.println(Collections.max(list)); System.out.println(Collections.min(list)); }
567 2
此种方式是根据元素的自然顺序返回给定元素的最大值最小值。
对String类型的元素进行排序:
@Test public void test (){ List list=new ArrayList(); list.add("a"); list.add("d"); list.add("s"); list.add("b"); list.add("p"); Object string=Collections.max(list, new Comparator() { @Override public int compare(Object o1, Object o2) { String string1=(String)o1; String string2=(String)o2; return string1.compareTo(string2); } }); System.out.println(string); }
s
需要自定义比较器
某一元素出现的次数
@Test public void test (){ List list=new ArrayList(); list.add("a"); list.add("d"); list.add("s"); list.add("b"); list.add("a"); System.out.println(Collections.frequency(list,"a")); }
2
(3)复制
@Test public void test (){ List list=new ArrayList(); List dest=new ArrayList(); for (int i=0;i<=10;i++){ dest.add("zhai"+i); } list.add("a"); list.add("d"); list.add("s"); list.add("b"); list.add("a"); Collections.copy(dest,list); System.out.println(dest); }
[a, d, s, b, a, zhai5, zhai6, zhai7, zhai8, zhai9, zhai10]
注意:目标集合的元素个数要多于被复制的集合元素的个数
(4)替换
@Test public void test (){ List list=new ArrayList(); list.add("a"); list.add("d"); list.add("s"); list.add("b"); list.add("a"); Collections.replaceAll(list,"a","zhai"); System.out.println(list); }
[zhai, d, s, b, zhai]