ArrayList应用

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()用法


 

猜你喜欢

转载自blog.csdn.net/qq_36911811/article/details/81868621