本章目标
掌握Collections与Collection接口的区别
掌握Collections类中提供的主要操作方法
Collections简介
在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合。
Collections类的定义:
——public class Collections extends Object
Collections类的常用方法及常量
实例操作一:返回不可变的集合
import java.util.Collections;
import java.util.List;
import java.util.Set;
public class CollectionsDemo01 {
public static void main(String[] args) {
List<String> allList = Collections.emptyList();//返回不可变的空 List 集合
Set<String> allSet = Collections.emptySet();//返回不可变的空 List 集合
allList.add("Hello");//错误,无法加入
}
/* 结果:提示表示不支持的方法异常,因为没有找到 add()方法的实现
* Exception in thread "main" java.lang.UnsupportedOperationException
* at java.util.AbstractList.add(AbstractList.java:131)
* at java.util.AbstractList.add(AbstractList.java:91)
* at J031314.CollectionsDemo01.main(CollectionsDemo01.java:12)
* */
}
实例操作二:为集合增加内容
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class CollectionsDemo02 {
public static void main(String[] args) {
List<String> all = new ArrayList<String>();//实例化 List
Collections.addAll(all, "Hello","World","Chaoyi");//增加内容
Iterator<String> iter = all.iterator();//实例化 Iterator 对象
while(iter.hasNext()){//迭代输出
System.out.print(iter.next()+"、");//输出内容
}
}
/* 结果:
* Hello、World、Chaoyi、
* */
}
实例操作三:反转集合中的内容
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class CollectionsDemo03 {
public static void main(String[] args) {
List<String> all = new ArrayList<String>();//实例化 List
Collections.addAll(all, "Hello","World","Chaoyi");//增加内容
Collections.reverse(all);//内容反转保存
Iterator<String> iter = all.iterator();//实例化 Iterator 对象
while(iter.hasNext()){//迭代输出
System.out.print(iter.next()+"、");//输出内容
}
}
/* 结果:
* Chaoyi、World、Hello、
* */
}
实例操作四:检索内容
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CollectionsDemo04 {
public static void main(String[] args) {
List<String> all = new ArrayList<String>();//实例化 List
Collections.addAll(all, "Hello","World","Chaoyi");//增加内容
int point = Collections.binarySearch(all, "World");//检索内容
System.out.println("检索结果:"+point);//输出位置
point = Collections.binarySearch(all, "With");//检索内容,内容不存在
System.out.println("检索结果:"+point);//输出位置
}
/* 结果:
* 检索结果:1
* 检索结果:-2
* */
}
实例操作五:替换集合中的内容
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class CollectionsDemo05 {
public static void main(String[] args) {
List<String> all = new ArrayList<String>();//实例化 List
Collections.addAll(all, "Hello","World","Chaoyi");//增加内容
if(Collections.replaceAll(all, "Chaoyi", "name")){//替换内容
System.out.println("内容替换成功!");//输出信息
}
System.out.print("替换之后的结果:");//输出信息
Iterator<String> iter = all.iterator();//实例化 Iterator 对象
while(iter.hasNext()){//迭代输出
System.out.print(iter.next()+"、");//输出内容
}
}
/* 结果:
* 内容替换成功!
* 替换之后的结果:Hello、World、name、
* */
}
实例操作六:集合排序
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class CollectionsDemo06 {
public static void main(String[] args) {
List<String> all = new ArrayList<String>();//实例化 List
Collections.addAll(all, "1、Hello","2、World","X、Chaoyi");//增加内容
Collections.addAll(all, "B、www.baidu.com");//增加内容
Collections.addAll(all, "A、www.so.com");//增加内容
System.out.print("排序之前的集合:");//输出信息
Iterator<String> iter = all.iterator();//实例化 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()+"、");//输出内容
}
}
/* 结果:
* 排序之前的集合:1、Hello、2、World、X、Chaoyi、B、www.baidu.com、A、www.so.com、
* 排序之后的集合:1、Hello、2、World、A、www.so.com、B、www.baidu.com、X、Chaoyi、
* */
}
实例操作七:交换指定位置的内容
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class CollectionsDemo07 {
public static void main(String[] args) {
List<String> all = new ArrayList<String>();//实例化 List
Collections.addAll(all, "1、Hello","2、World","3、Chaoyi");//增加内容
System.out.print("交换之前的集合:");//输出信息
Iterator<String> iter = all.iterator();//实例化 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()+"、");//输出内容
}
}
/* 结果:
* 交换之前的集合:1、Hello、2、World、3、Chaoyi、
* 交换之后的集合:3、Chaoyi、2、World、1、Hello、
* */
}