美文网首页
Java-集合详解

Java-集合详解

作者: 一只洁_ | 来源:发表于2019-08-16 23:03 被阅读0次

    数组时大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型)
    java集合可以存储和操作数目不固定的一组数据。
    java集合只能存放引用类型的数据,不能存放基本数据类型。
    java集合主要分为三种类型:
    Set(集)
    List(列表)
    Map(映射)
    Collection 接口
    Collection是最基本的集合接口,声明了适用于Java集合(只包括Set和List)的通用方法。
    Set和List都继承了Collection,Map没有

    1.Collection接口的方法:

    (1)boolean add(Object o):向集合中加入一个对象的引用

        Collection<String> t1 = new ArrayList<>();
        t1.add("Jack");
        t1.add("Merry");
        System.out.println(t1);
    

    运行结果

     [Jack, Merry]
    

    (2)boolean remove(Object o):从集合中删除一个对象的引用

        t1.remove("Jack");
        System.out.println(t1);
    

    运行结果:

    [Merry]
    

    (3)int size():返回集合中元素的数目

        System.out.println(t1.size());
    

    运行结果

    1
    

    (4)boolean contains(Object o):判断集合中是否持有特定对象的引用

        if (t1.contains("Merry")){
            System.out.println("有Merry");
        }else {
            System.out.println("没有Merry");
        }
    

    运行结果

    有Merry
    

    (5)boolean isEmpty():判断集合是否为空

    if (t1.isEmpty()){
            System.out.println("是空的");
        }else {
            System.out.println("不是空的");
        }
    

    运行结果

        不是空的
    

    (6)boolean equals(Obejec o):判断两个集合是否相同(比较集合里面的内容)

        Collection<String> t2 = new ArrayList<>();
        t2.add("Jack");
        t2.add("Merry");
        t2.add("Rose");
        t2.add("Tom");
    
        if (t1.equals(t2)){
            System.out.println("t1和t2相同");
        }else {
            System.out.println("t1和t2不同");
        }
    

    运行结果

    t1和t2不同
    

    (7)void clear():删除集合中所有的对象,即不再持有这些对象的引用

        t2.clear();
        System.out.println(t2);
    

    运行结果

    []
    
    2.Interator接口

    用来遍历集合中的元素

    (1)hasNext():判断集合中元素是否遍历完毕,如果没有,就返回true
    ------- next():返回下一个元素
    a.

        Iterator iterator = t2.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
    

    运行结果:

    Jack
    Merry
    Rose
    Tom
    

    b.

        for (String obj:t2){
            System.out.println(obj);
        }
    

    c.

        for (int i  = 0; i < t2.size(); i++){
            System.out.println(((ArrayList<String>)t2).get(i));
        }
    

    运行结果都一样

    3.List(列表)

    List的特征是以线性方式存储,集合中可以存放重复对象。
    List接口主要实现类包括:
    ArrayList():代表长度可以改变的数组。可以对元素进行随机的访问。向ArrayList()中插入与删除元素的速度慢。
    对于List的随机访问来说,就是只随机来检索位于特定位置的元素。
    List的get(int index)方法放回集合中参数index指定的索引位置的对象,下标从"0"开始。

    (1)

        ArrayList<Integer> score = new ArrayList<>();
        score.add(2);
        score.add(4);// 在末尾添加
        score.add(0,1);// 在指定位置插入
        System.out.println(score);
    

    运行结果:

     [1, 2, 4]
    

    (2)访问指定元素

            score.get(1);
    

    (3)修改一个元素

        score.set(0,0);
        System.out.println(score);
    

    运行结果:

     [0, 2, 4]
    

    (4)删除
    (a)

        score.remove(0);//删除指定位置的元素
        System.out.println(score);
    

    运行结果

     [2, 4]
    

    (b)

        score.remove((Integer)2);//删除指定的对象
        System.out.println(score);
    

    运行结果:

    [4]
    

    (5)将一个集合里面的内容添加到当前集合中

        ArrayList<Integer> c1 = new ArrayList<>();
        c1.add(3);
        c1.add(9);
        c1.add(6);
    
        score.addAll(c1);
        System.out.println(score);
    

    运行结果:

    [4, 3, 9, 6]
    

    (6)取两个集合的交集

        ArrayList<Integer> c2 = new ArrayList<>();
        c2.add(2);
        c2.add(3);
        c2.add(4);
        c2.add(1);
        
        score.retainAll(c2);//取两个集合的交集
        System.out.println(score);
    

    运行结果:

    [4, 3]
    

    (7)访问某个对象在集合里面的索引

        ArrayList<Integer> c3 = new ArrayList<>();
        c3.add(1);
        c3.add(2);
        c3.add(3);
        c3.add(1);
        c3.add(2);
    
        System.out.println(c3.indexOf(1));// 第一次出现的位置
        System.out.println(c3.lastIndexOf(1));// 最后一次出现的位置
    

    运行结果

    0
    3
    

    (8)将ArrayList转化为普通数组
    a:

        Integer[] objects = new Integer[c3.size()];
        c3.toArray(objects);
        for (Integer i:objects){
            System.out.println(i);
        }
    

    运行结果:

     1
     2
     3
     1
     2
    

    b:

        Object[] objects1 = c3.toArray();
        for (Object i:objects1){
            System.out.println(i);
        }
    

    c:

        Iterator iterator = a4.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
    

    三种方式运行结果相同

    相关文章

      网友评论

          本文标题:Java-集合详解

          本文链接:https://www.haomeiwen.com/subject/pgtqsctx.html