Java中的Collections類(工具類)十二大常用方法總結
阿新 • • 發佈:2020-11-18
Collections類
Collections類是Java中針對集合類的一個工具類,其中提供一系列靜態方法。
1. sort(Comparator<? super E>):void List
對集合中的元素排序:
public class Main { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(2); list.add(5); list.add(3); list.add(4); list.add(1); Collections.sort(list); System.out.println(list); } } Output: [1, 2, 3, 4, 5]
2.reverse(List<?>):void
反轉集合中的元素:
public class Main { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>();for(int i = 0;i< 5; i++){ list.add(i+1); } System.out.println(list); Collections.reverse(list); System.out.println(list); } } Output: [1, 2, 3, 4, 5] [5, 4, 3, 2, 1]
3.shuffle(List<?>):void
打亂元素中的元素:
public class Main { public static voidmain(String[] args) { List<Integer> list = new ArrayList<Integer>(); for(int i = 0;i< 5; i++){ list.add(i+1); } Collections.shuffle(list); System.out.println(list); } } Output:(每次都不同) eg:[4, 2, 1, 3, 5]
4.fill(List<? super T>,T):void
用T元素替換掉集合中的所有的元素:
public class Main { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); for(int i = 0;i< 5; i++){ list.add(i+1); } System.out.println(list); Collections.fill(list,6); System.out.println(list); } } Output: [1, 2, 3, 4, 5] [6, 6, 6, 6, 6]
5.copy(List<? super T>,List<? extend T>):void
複製並覆蓋相應索引的元素:
public class Main { public static void main(String[] args) { List<Integer> list1 = new ArrayList<Integer>(); for(int i = 0;i< 5; i++){ list1.add(i+1); } List<Integer> list2 = new ArrayList<Integer>(); for(int i = 0;i<5;i++){ list2.add(i+6); } System.out.println(list1); Collections.copy(list1,list2); System.out.println(list1); } } Output: [1, 2, 3, 4, 5] [6, 7, 8, 9, 10]
6.min/max(Collection<? extends T>):T
找到集合中最大/小的元素:
public class Main { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); for(int i = 0;i< 10; i++){ list.add(i+1); } System.out.println(Collections.max(list)); System.out.println(Collections.min(list)); } } Output: 10 1
7.swap(List<?>,int,int):void
交換集合中指定元素索引的位置:
public class Main { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); for(int i = 0;i< 10; i++){ list.add(i+1); } Collections.swap(list,3,4); System.out.println(list); } } Output: [1, 2, 3, 5, 4, 6, 7, 8, 9, 10]
8.rotate(List<?>,int):void
集合中的元素向後移m個位置,在後面被遮蓋的元素迴圈到前面來.
(負數向左移動,正數向右移動)
public class Main { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); for(int i = 0;i< 5; i++){ list.add(i+1); } Collections.rotate(list,2); System.out.println(list); Collections.rotate(list,-2); System.out.println(list); } } Output: [4, 5, 1, 2, 3] [1, 2, 3, 4, 5]
9.indexOfSubList(List<?>,List<?>):int / lastIndexOfSubList(List<?>,List<?>):int
找出引數2在引數1第一次出現的位置:
public class Main { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3,3,3,4,5)); List<Integer> subList = new ArrayList<Integer>(); subList.add(3); System.out.println(Collections.indexOfSubList(list,subList)); System.out.println(Collections.lastIndexOfSubList(list,subList)); } } Output: 2 4
10.replaceAll(List,T,T):boolean
替換成指定的元素:
public class Main { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3,4,5,6)); System.out.println(Collections.replaceAll(list,3,36)); System.out.println(list); } } Output: true [1, 2, 36, 4, 5, 6]
11.synchronizedXxx方法
可以將某集合轉化成執行緒安全的容器之後再使用:
public class Main { public static void main(String[] args) { List<String> slist = Collections.synchronizedList(new ArrayList<String>()); ... } }
12.unmodifiableCollection(Collection<? extends T>):Collection
將集合變為不可修改:
public class Main { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(10); Collection<Integer> clist = Collections.unmodifiableCollection(list); try{ clist.add(10); }catch (Exception e){ System.out.println("Exception"); } } } Output: Exception