一、Collections 简介
Collections 类的定义:
public class Collections extends Object
Collections 类的常用方法及类型如下:
二、Collections 操作实例
1. 实例操作一:返回不可变的集合
Collections 类中可以返回空的 List、Set、Map 集合,但是通过这种方式返回的对象时无法进行增加数据的,因为在这些操作中并没有实现 add() 方法:
public class Root{
public static void main(String[] args) {
List<String > allList = Collections.emptyList();//返回不可变的空 List集合
Set<String > allSet = Collections.emptySet();//返回不可变的空 List集合
allList.add("Hello");
}
}
- 2
- 3
- 4
- 5
- 6
- 7
方法异常,因为没有找到 add() 方法的实现
2. 实例操作二:为集合增加内容
使用 addAll() 方法可以为一个集合增加内容。此方法可以接收可变参数,所以可以传递任意多的参数作为集合的内容。
public class Root{
public static void main(String[] args) {
List<String > all = new ArrayList<String >();
Collections.addAll(all,"J1","J2","J3");//增加内容
Iterator<String> iter = all.iterator();//实例化 Iterator 对象
while (iter.hasNext()){
System.out.print(iter.next() + "、");
}
}
}
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
3. 实例操作三:反转集合中的内容
直接使用 Collections 工具类中的 reverse() 方法即可将集合类中的内容反转保存
public class Root{
public static void main(String[] args) {
List<String > all = new ArrayList<String >();
Collections.addAll(all,"J1","J2","J3");//增加内容
Collections.reverse(all);
Iterator<String> iter = all.iterator();//实例化 Iterator 对象
while (iter.hasNext()){
System.out.print(iter.next() + "、");
}
}
}
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
4. 实例操作四:检索内容
直接通过 Collections 类中的 binarySearch() 方法即可完成内容的检索,检索之后会返回内容的位置
public class Root{
public static void main(String[] args) {
List<String > all = new ArrayList<String >();
Collections.addAll(all,"J1","J2","J3");//增加内容
int point = Collections.binarySearch(all,"J2");
System.out.println("检索内容:" + point);
}
}
- 2
- 3
- 4
- 5
- 6
- 7
- 8
5. 实例操作五:替换集合中的内容
Collections 类中也提供了 replaceAll()方法,可以替换一个集合中的指定内容。
public class Root{
public static void main(String[] args) {
List<String > all = new ArrayList<String >();
Collections.addAll(all,"J1","J2","J3");//增加内容
if (Collections.replaceAll(all,"J2","J4")){//替换内容
System.out.println("内容替换成功");
}
System.out.println("替换之后的结果:" );
Iterator<String> iter = all.iterator();
while (iter.hasNext()) {
System.out.print(iter.next() + "、");
}
}
}
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
6. 实例操作六:集合排序
可以通过 Collections 类中的 sort() 方法对一个集合进行排序操作,但是要求集合中每个对象所在的类必须实现 Comparable 接口
public class Test{
public static void main(String[] args) {
List<String > all = new ArrayList<String >();
Collections.addAll(all,"1-J1","https://files.jxasp.com/image/2-J2","3-J3");
Collections.addAll(all,"0-J0");
System.out.print("排序之前的集合:");
Iterator<String > iter = all.iterator();
while (iter.hasNext()) {
System.out.print(iter.next() + "、");
}
Collections.sort(all);//集合排序
System.out.print("\n排序之后的集合:");//输出信息
iter = all.iterator();//实例化 Iterator 对象
while (iter.hasNext()) {
System.out.print(iter.next() + "、");
}
}
}
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
7. 实例操作七:交换指定位置的内容
直接使用 swap() 方法可以把集合中两个位置的内容进行交换
public class Test{
public static void main(String[] args) {
List<String > all = new ArrayList<String >();
Collections.addAll(all,"0-J0","1-J1","https://files.jxasp.com/image/2-J2");
System.out.print("交换之前的集合:");
Iterator<String > iter = all.iterator();
while (iter.hasNext()) {
System.out.print(iter.next() + "、");
}
Collections.swap(all,0,2);//交换指定位置的内容
System.out.print("\n排序之后的集合:");//输出信息
iter = all.iterator();//实例化 Iterator 对象
while (iter.hasNext()) {
System.out.print(iter.next() + "、");
}
}
}
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17