/**
* 书本:《Thinking In Java》
* 功能:java中Collection的各种操作
* 文件:CollectionMethods.java
* 时间:2015年5月1日10:08:16
* 作者:cutter_point
*/
package Lesson17Containers;
import java.util.List;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import net.mindview.util.Countries;
import static net.mindview.util.Print.*;
public class CollectionMethods
{
public static void main(String[] args)
{
Collection<String> c = new ArrayList<String>();
c.addAll(Countries.names(6));
c.add("ten");
c.add("eleven");
print(c);
Object[] array = c.toArray(); //吧c化为Object类型的数组
String[] str = c.toArray(new String[0]);
//这里安字典的排序排序了
print("Collections.max(c) = " + Collections.max(c)); //排序最大的
print("Collections.min(c) = " + Collections.min(c)); //排序最小的
print("-------------------------------------------------------");
Collection<String> c2 = new ArrayList<String>();
c2.addAll(Countries.names(6));
c.addAll(c2); //吧c2的值尾随到c中
print(c);
print("-------------------------------------------------------");
//我们删除几个值试一试
c.remove(Countries.DATA[0][0]); //只要发生了删除就返回true,不管集合里面还有没有重复的
print(c);
c.remove(Countries.DATA[1][0]);
print(c);
print("-------------------------------------------------------");
c.removeAll(c2); //去除所有的c2中有的元素,有多少去多少
print(c);
c.addAll(c2);
print(c);
print("-------------------------------------------------------");
//contains的作用就是看一看容器中是否包含有这个val元素
String val = Countries.DATA[3][0];
print("c.contains(" + val + ") = " + c.contains(val));
//极端一点,可以搞一个集合来看看是否包含有
print("c.containsAll(c2) = " + c.containsAll(c2)); //完全包含
Collection<String> c3 = ((List<String>)c).subList(3, 5); //吧c中排在第4和第5的元素拿出来[ten, eleven, ALGERIA, ANGOLA, BENIN, BOTSWANA, BURKINA FASO, BURUNDI]
print("-------------------------------------------------------");
//我们求一下交集
c2.retainAll(c3); //c2和c3的交集,保存到c2中
print(c2);
print("-------------------------------------------------------");
//吧c2中的c3部分去掉,c2现在是[ANGOLA, BENIN]
c2.removeAll(c3);
print("c2.isEmpty() = " + c2.isEmpty());
print("-------------------------------------------------------");
//当前c是:[ten, eleven, ALGERIA, ANGOLA, BENIN, BOTSWANA, BURKINA FASO, BURUNDI]
c = new ArrayList<String>(); //重新创建,前面那个c就已经丢失了
c.addAll(Countries.names(6));
print(c);
c.clear(); // 清空所有元素
print("after c.clear():" + c);
}
}
输出:
[ALGERIA, ANGOLA, BENIN, BOTSWANA, BURKINA FASO, BURUNDI, ten, eleven] obj1
Collections.max(c) = ten obj1
Collections.min(c) = ALGERIA obj1
------------------------------------------------------- obj1
[ALGERIA, ANGOLA, BENIN, BOTSWANA, BURKINA FASO, BURUNDI, ten, eleven, ALGERIA, ANGOLA, BENIN, BOTSWANA, BURKINA FASO, BURUNDI] obj1
------------------------------------------------------- obj1
[ANGOLA, BENIN, BOTSWANA, BURKINA FASO, BURUNDI, ten, eleven, ALGERIA, ANGOLA, BENIN, BOTSWANA, BURKINA FASO, BURUNDI] obj1
[BENIN, BOTSWANA, BURKINA FASO, BURUNDI, ten, eleven, ALGERIA, ANGOLA, BENIN, BOTSWANA, BURKINA FASO, BURUNDI] obj1
------------------------------------------------------- obj1
[ten, eleven] obj1
[ten, eleven, ALGERIA, ANGOLA, BENIN, BOTSWANA, BURKINA FASO, BURUNDI] obj1
------------------------------------------------------- obj1
c.contains(BOTSWANA) = true obj1
c.containsAll(c2) = true obj1
------------------------------------------------------- obj1
[ANGOLA, BENIN] obj1
------------------------------------------------------- obj1
c2.isEmpty() = true obj1
------------------------------------------------------- obj1
[ALGERIA, ANGOLA, BENIN, BOTSWANA, BURKINA FASO, BURUNDI] obj1
after c.clear():[] obj1