这里写目录标题
13.9.1 Collections 简介
13.9.2 Collections 操作实例
1.实例操作1——返回不可变的集合
Collections类中可以返回空的List、Set、Map集合,但是通过这种方式返回的对象是无法进行增加数据操作的
,因为在这些操作中并没有实现add()方法,如下所示。
【例13.41】返回空的集合对象
package jiaqi;
import java.util.*;
public class temp {
public static void main(String[] args) {
List<String> allList = Collections.emptyList();
Set<String> allSet = Collections.emptySet();
allList.add("Add");
allSet.add("Add");
}
}
2.实例操作2——为集合増加内容
使用addAll()方法可以为一个集合增加内容
。此方法可以接收可变参数,所以可以传递任意多的参数作为集合的内容。
【例13.42】增加内容
package jiaqi;
import java.util.*;
public class temp {
public static void main(String[] args) {
List<String> allList = new ArrayList<String>();
Collections.addAll(allList,"AAA","BBB","CCC");
Iterator<String> iter = allList.iterator();
while(iter.hasNext())
{
System.out.print(iter.next()+"\t");
}
System.out.println();
}
}
3.实例操作3——反转集合中的内容
【例13.43]反转内容
直接使用Collections工具类中的reverse()方法就可以将集合类中的内容反转保存。
package jiaqi;
import java.util.*;
public class temp {
public static void main(String[] args) {
List<String> allList = new ArrayList<String>();
Collections.addAll(allList,"AAA","BBB","CCC");
Collections.reverse(allList);
Iterator<String> iter = allList.iterator();
while(iter.hasNext())
{
System.out.print(iter.next()+"\t");
}
System.out.println();
}
}
4.实例操作4——检索内容
直接通过Collections类中的binarySearch()
即可以完成内容的检索,检索之后会返回内容的位置。
【例13.44]检索内容
package jiaqi;
import java.util.*;
public class temp {
public static void main(String[] args) {
List<String> allList = new ArrayList<String>();
Collections.addAll(allList,"AAA","BBB","CCC","DDD");
System.out.println("BBB的位置:"+Collections.binarySearch(allList, "BBB"));
System.out.println("DDD的位置:"+Collections.binarySearch(allList, "DDD"));
System.out.println("DDD的位置:"+Collections.binarySearch(allList, "FFF"));
System.out.println("DDD的位置:"+Collections.binarySearch(allList, "D"));
}
}
5.实例操作5——替换集合中的内容
Collections类中也提供了 replaceAll()
方法,可以替换一个集合中的指定内容。
【例13.45】替换集合指定范围的内容
package jiaqi;
import java.util.*;
public class temp {
public static void main(String[] args) {
List<String> allList = new ArrayList<String>();
Collections.addAll(allList,"AAA","BBB","CCC","DDD");
if(Collections.replaceAll(allList, "BBB", "EEE"));
Iterator<String> iter = allList.iterator();
while(iter.hasNext())
{
System.out.print(iter.next()+"\t");
}
System.out.println();
}
}
6.实例操作6——集合排序
可以通过Collections类中的sort()方法对一个集合进行排序操作,但是要求集合中每个对象所在的类必须实现Comparable接口。
【例13.46]集合排序
package jiaqi;
import java.util.*;
public class temp {
public static void main(String[] args) {
List<String> allList = new ArrayList<String>();
Collections.addAll(allList,"AAA","DDD","CCC","BBB");
Collections.sort(allList);
Iterator<String> iter = allList.iterator();
while(iter.hasNext())
{
System.out.print(iter.next()+"\t");
}
System.out.println();
}
}
7.实例操作7——交换指定位置的内容
直接使用swap()
方法可以把集合中两个位置的内容进行交换。
【例13.47】交换指定位置的元素
package jiaqi;
import java.util.*;
public class temp {
public static void main(String[] args) {
List<String> allList = new ArrayList<String>();
Collections.addAll(allList,"AAA","DDD","CCC","BBB");
System.out.println("交换前:");
Iterator<String> iter = allList.iterator();
while(iter.hasNext())
{
System.out.print(iter.next()+"\t");
}
System.out.println();
Collections.swap(allList, 0, 1);
System.out.println("交换后:");
Iterator<String> iter1 = allList.iterator();
while(iter1.hasNext())
{
System.out.print(iter1.next()+"\t");
}
System.out.println();
}
}