Java从零开始学二十四(集合工具类Collections)
一、Collections简介
在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合
二、Collections类的常用方法及常量
No.
|
方法
|
类型
|
描述
|
1
|
public static final List EMPTY_LIST
|
常量
|
返回一个空的List集合
|
2
|
public static final Set EMPTY_SET
|
常量
|
返回空的Set集合
|
3
|
public static final Map EMPTY_MAP
|
常量
|
返回空的Map集合
|
4
|
public static <T> boolean addAll(Collection<? super T> c, T... a)
|
普通
|
为集合添加内容
|
5
|
public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)
|
普通
|
找到最大的内容,按比较器排序
根据元素的自然顺序,返回给定集合的最大元素
|
6
|
public static <T extends Object & Comparable<? super T>> T min(Collection<? extends T> coll)
|
普通
|
找到集合中的最小内容,按比较器排序
根据元素的自然顺序 返回给定集合的最小元素
|
7
|
public static <T> boolean replaceAll(List<T> list,T oldVal,T newVal)
|
普通
|
用新的内容替换集合的指定内容
使用另一个值替换集合中出现的所有某一指定值
|
8
|
public static void reverse(List<?> list)
|
普通
|
反转指定List 集合中元素的顺序。 |
9
|
public static <T> int binarySearch(List<? extends Comparable<? super T>> list,T key)
|
普通
|
查找集合中的指定内容
使用二分查找算法查找指定List 集合,以获得指 |
10
|
public static final <T> List<T> emptyList()
|
普通
|
返回一个空的List集合
|
11
|
public static final <K,V> Map<K,V> emptyMap()
|
普通
|
返回一个空的Map集合
|
12
|
public static final <T> Set<T> emptySet()
|
普通
|
返回一个空的Set集合
|
13
|
public static <T extends Comparable<? super T>> void sort(List<T> list)
|
普通
|
集合排序操作,根据Comparable接口进行排序
根据元素的自然顺序 对指定List 集合按升 |
14
|
public static void swap(List<?> list,int i,int j)
|
普通
|
交换指定位置的元素
|
三、将指定List 集合中的元素顺序反转
package com.pb.demo2; import java.util.Collections; import java.util.LinkedList; import java.util.List; public class CollectionsTest1 { public static void main(String[] args) { //声明集合并添加元素 LinkedList<String> list = new LinkedList<String>(); list.add("one"); list.add("two"); list.add("three"); System.out.println("=======正常遍历============"); for (String s : list) { System.out.print(s+"\t"); } System.out.println(); System.out.println("=======执行reverse方法============"); Collections.reverse(list); for (String s : list) { System.out.print(s+"\t"); } } }
四、sort 方法的作用是对指定List 集合按升序进行排序
package com.pb.demo2; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class CollectionsTest2 { public static void main(String[] args) { //声明集合并添加集 List<Integer> list = new ArrayList<Integer>(); list.add(7); list.add(2); list.add(5); list.add(3); list.add(1); System.out.println("=======正常遍历============"); for (Integer i : list) { System.out.print(i+"\t"); } System.out.println("\n=======执行sort方法============"); Collections.sort(list); for (Integer i : list) { System.out.print(i+"\t"); } System.out.println("\n=======执行reverse方法============"); Collections.reverse(list); for (Integer i : list) { System.out.print(i+"\t"); } } }
结果:
=======正常遍历============ 7 2 5 3 1 =======执行sort方法============ 1 2 3 5 7 =======执行reverse方法============ 7 5 3 2 1
五、集合查找、替换的方法
package com.pb.demo2; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class CollectionsTest3 { public static void main(String[] args) { //声明集合并添加集 //创建集合 List<String> list = new ArrayList<String>(); //增加10 个不同单词 list.add("this"); list.add("is"); list.add("collection"); list.add("test"); list.add("and"); list.add("we"); list.add("can"); list.add("learn"); list.add("how"); list.add("to"); System.out.println("=======正常遍历============"); for (String s : list) { System.out.print(s+"\t"); } //打印输出集合中最大元素和最小元素 System.out.println("\n========打印输出集合中最大元素和最小元素========="); String max=Collections.max(list); String min=Collections.min(list); System.out.println("list集合中的最大值:"+max); System.out.println("list集合中的最小值:"+min); System.out.println("\n=======执行sort方法============"); Collections.sort(list); for (String s : list) { System.out.print(s+"\t"); } //binarySearch使用的前提是要排序才可以使用 System.out.println("\n=============binarySearch根据内容查找索引================"); System.out.println("we在list中的索引是:"+Collections.binarySearch(list, "we")); System.out.println("=============replaceAll方法================"); //replaceAll Collections.replaceAll(list, "we", "our"); for (String s : list) { System.out.print(s+"\t"); } //swap System.out.println("======swap========"); Collections.swap(list, 0, 9); for (String s : list) { System.out.print(s+"\t"); } } }
结果:
=======正常遍历============ this is collection test and we can learn how to ========打印输出集合中最大元素和最小元素========= list集合中的最大值:we list集合中的最小值:and =======执行sort方法============ and can collection how is learn test this to we =============binarySearch根据内容查找索引================ we在list中的索引是:9 =============replaceAll方法================ and can collection how is learn test this to our ======swap======== our can collection how is learn test this to and
六、使用Arrays.asList生成集合
package com.pb.demo2; import java.util.Arrays; import java.util.List; public class Test1 { public static void main(String[] args) { String str="a,b,c,d,e,f"; List<String> list1=Arrays.asList(str); System.out.println("list1的长度: "+list1.size()); for (String s : list1) { System.out.print(s+"\t"); } System.out.println("\n按逗号分离后生成集合"); List<String> list2=Arrays.asList(str.split(",")); System.out.println("list2的长度: "+list2.size()); for (String s : list2) { System.out.print(s+"\t"); } } }
结果:
list1的长度: 1 a,b,c,d,e,f 按逗号分离后生成集合 list2的长度: 6 a b c d e f