package pxy;
import java.util.ArrayList;
import java.util.Collection;
public class CollectionTest {
public static void main(String[] args) {
//-----------------------ArrayList------------------------------
//父类接口引用子类对象 Collection是接口,接口不能直接创建对象
Collection e=new ArrayList();
//不能一次添加多个元素,可以多个类型,自动装箱
e.add("1");
e.add("2");
e.add("孙悟空");
e.add('a');
e.add(true);
e.add("清除测试元素");
//往e集合加重复元素
e.add("1");
//创建f集合
Collection f=new ArrayList();
//集合添加e集合所有元素
f.addAll(e);
//添加其余的元素
f.add("猪八戒");
f.add("沙僧");
f.add("唐三藏");
//if(f.containsAll(e))是否包含集合里所有的元素
if(f.containsAll(e))
{
System.out.println("f集合中包括e集合中所有的元素");
}
//是否包含下标为2的元素----孙悟空
if(e.contains("孙悟空"))
{
System.out.println("包含孙悟空");
}
//clear清除所有元素,如果想清除某个特定元素,需要用到remove
//e.remove("清除测试元素");
//e.remove(6);此时6是下标 如果0开始则清除测试元素,如果1开始,则去除重复的1
e.remove("唐三藏");//Collection remove 没有下标的功能,可以利用ArrayList的remove()
System.out.println(e);
//------------------------arrayList元素可重复,长度可增加 --------------------------------不能按下标操作,如果相同元素如何处理
System.out.println("\n");
ArrayList arr=new ArrayList(100);//实际上容量默认为0,设置初始容量为5,当元素增加,容量可以扩充为10
arr.add(1);
arr.add(2);
arr.add('a');
arr.add('b');
arr.add("张三");
arr.add("李四");
arr.add("王五");
//下标为7的时候插入张三
arr.add(7, "张三");
System.out.println("arr集合的长度是: "+arr.size()+" 元素是 "+arr);
//这里不能写成length,ArrayList没有length方法,可用size()代替
for(int i=0;i<arr.size();i++)
{
System.out.print(arr.get(i)+" ");
}
System.out.println();
//toArray()转换成一个数组,直接打印,会打印出数组的地址,应该循环输出
System.out.println("转换为数组: "+arr.toArray());
System.out.println("去掉下标为5的李四元素 "+arr.remove(5));
//迭代器可以遍历整个集合元素
if(arr.iterator().hasNext())
{
System.out.println("返回下标为2和5的元素 "+arr.get(2) +" "+arr.get(5));
}
//System.out.println("返回一个iterator对象 "+arr.iterator());
System.out.println("判断集合是否为空 "+arr.isEmpty());
//subList(a,b)包含a,不包含b索引的元素
System.out.println("子集合应该输出为 1,2,a,b : "+arr.subList(0, 4));
System.out.println("获得某个元素 "+arr.get(0));
System.out.println("张三 元素第一次出现的下标 "+arr.indexOf("张三"));
System.out.println("arr集合的哈希值 "+arr.hashCode());
System.out.println("张三 元素最后一次出现的下标 "+arr.lastIndexOf("张三"));
System.out.println("集合元素返回成String类型 "+arr.toString());
System.out.println("是否包含2这个元素 "+arr.contains(2));
System.out.println("设置下标为2的元素为A "+arr.set(2, 'A'));
System.out.println("输出元素 看下标为2元素是否改变 "+arr);
//集合克隆
ArrayList byArrClone=new ArrayList();
byArrClone=(ArrayList) arr.clone();
System.out.println("克隆arr集合 "+byArrClone);
System.out.println("集合是否和f集合相等 : "+arr.equals(f)+" 集合是否和byArrClone集合相等: "+arr.equals(byArrClone));
System.out.println("运行时的类 "+arr.getClass());
System.out.println("不懂啥意思 "+arr.listIterator());
System.out.println("不懂啥意思 "+arr.listIterator(3));
System.out.println("返回一个可能的并行流"+arr.parallelStream());
//System.out.println(arr.ensureCapacity(int minCapacity));
//System.out.println(" "+arr.forEach());
//System.out.println(""+arr.replaceAll(1,2,3,4,5,6,7,"8"));
//System.out.println(""+arr.trimToSize());
//System.out.println(arr.sort(c));
}
}
运行结果,有些也不懂怎么使用,请大家多多指教
后续的文章中也会指出一些细节地方,如getCalss()用法