import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
public class fuxi3_arraylist_hashset
{
public static void main(String[] args)
{
/************************* JDK1.5增强型for循环 *************************************************/
Collection<String> list = new HashSet<String>();// 多态
list.add("aaa");
list.add("bbb");
list.add("aaa");
list.add("ddd");
list.add("eee");
System.out.println(list.toString());// 打印结果[aaa, ddd, bbb, eee]
for (Object obj : list)// 遍历list元素,赋给obj
{
System.out.println(obj);
}
/************************* collection容器ArrayList *************************************************/
ArrayList<Integer> c1 = new ArrayList<Integer>();
c1.add(10);
c1.add(20);
c1.add(30);
c1.add(20);
c1.add(50);
int cs = c1.size();// 容器大小
c1.set(0, 5);// 设置容器内指定元素
cs = c1.indexOf(10);// 判断对象的位置
c1.subList(0, 2);// 截取0-1位置的容器元素,生成新的容器
System.out.println(c1);
System.out.println(c1.subList(0, 2));
Object[] obj = c1.toArray();// 转成数组
for (int i = 0; i < obj.length; i++)
{
System.out.println(obj[i]);
}
/**
* ArrayList为什么有两个remove方法? remove(int index) 是子类新添加的!
* 如果是父类引用指向子类对象,则找不到子类中新添加的方法。 要想调用子类新添加的方法,需要先转型
*/
c1.remove(2);// 移除该位置的元素,原容器长度减1
c1.remove(Integer.valueOf(20));// 移除第一个该值的元素对象,原容器长度减1,返回类型为布尔类型,结果为true
System.out.println(c1);
int ig = c1.get(0);// 得到位置0的元素
boolean bc = c1.isEmpty();// 是否为空
bc = c1.contains(15);// 是否包含
c1.clear();// 清空
/************************* 容器间ArrayList *************************************************/
ArrayList<String> a1 = new ArrayList<String>();
a1.add("aaa");
a1.add("bbb");
a1.add("ccc");
a1.add("ddd");
a1.add("eee");
ArrayList<String> a2 = new ArrayList<String>();
a2.add("bbb");
a2.add("eee");
a2.add("ddd");
boolean flag2 = a2.remove("fff");
System.out.println(flag2);// 结果为false
System.out.println(a1.containsAll(a2));// 是否包含a2所有元素,返回布尔值true
System.out.println(a1.retainAll(a2));// 求交集,返回布尔值true
System.out.println(a1.addAll(a2));// 添加a2所有元素,返回布尔值true
System.out.println(a1.removeAll(a2));// 移除与a2所有元素相同的元素,返回布尔值true
a1.retainAll(a2);// 求交集,返回布尔值,a1打印结果为:[bbb, ddd, eee]
a1.addAll(a2);// 添加,结果为:[aaa, bbb, ccc, ddd, eee, bbb, ddd]
a1.removeAll(a2);// 移除,结果为:[aaa, ccc]
System.out.println(a1);
/************************* 工具类collections *************************************************/
ArrayList<Integer> aa = new ArrayList<Integer>();
aa.add(13);
aa.add(5);
aa.add(10);
aa.add(53);
aa.add(25);
aa.add(18);
Collections.shuffle(aa);// 将容器内对象重新随机排列
Collections.sort(aa);// 将容器内对象从小到大排序
Collections.reverse(aa);// 将容器内对象倒置排列
Collections.fill(aa, 555);// 用特定的对象初始化整个aa
Collections.swap(aa, 0, aa.size() - 1);// 容器内对象位置对换
Integer inc = Collections.max(aa);// 获取容器值最大的对象
int ic = Collections.binarySearch(aa, 5);// 二分法查找容器内对象,用之前必须先sort,否则结果返回-1
System.out.println(ic);
// /////////////////////////////***复制****/////////////////////////////////////////////
ArrayList<Integer> aa1 = new ArrayList<Integer>();
aa1.add(2);
aa1.add(3);
ArrayList<Integer> aa2 = new ArrayList<Integer>();
aa2.add(12);
aa2.add(13);
aa2.add(14);
ArrayList<Integer> aa3 = new ArrayList<Integer>();
aa3.add(15);
// Collections.copy(aa1, aa2); //将aa2复制到aa1,aa1长度必须大于aa2,否则报错
Collections.copy(aa2, aa3);// 将aa3复制到aa2,长度不够的保留原对象,打印结果:[15, 13, 14]
System.out.println(aa1);
System.out.println(aa2);
}
}
本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1186832,如需转载请自行联系原作者