【学习笔记】集合(一)

集合

 

什么是集合?

  • 概念:对象的容器,定义了对多个对象进行操作的常用方法,可实现数组的功能

  • 和数组的区别:

    • (1)数组长度固定,集合长度不固定

    • (2)数组可以存储基本类型和引用类型,集合只能存储引用类型,如果想要存储基本类型,可以采用装箱的方式

  • 位置:java.util.*

 

Collection 体系集合

image-20220723091521164

  • Collection 接口位于这个体系的最顶层,是所有集合的父接口,它有两个子接口List、Set

    • List 接口的特点:有序、有下标、元素可重复

      • 有序是指添加的顺序和遍历的顺序是一致的

      • 有下标指有角标,可以像数组一样访问

      • 实现类:ArrayList, LinkedList, Vector

    • Set接口的特点:无序、无下标、元素不可重复

      • 实现类:HsahSet,TreeSet(实现SortedSet接口)

     

Collection 父接口

  • 特点:代表一组任意类型的对象

  • 由于Collection有两个子接口,并且它们的特点相反,所以我们整体把Collection看成是无序、无下标、不能重复。

  • 但在API中,对Collection 的描述是:有部分有序,有部分无序。有部分可以重复,有部分不能重复等。

Collection 中的方法

1.boolean add(Object obj) //添加一个对象

2.boolean remove(Object o) //在此集合中移除o对象

3.int size() //返回此集合中的元素个数

4.boolean isEmpty() //判断此集合是否为空

5.boolean contains(Object o) //检查此集合中是否包含o对象

 

下面我们在代码中体现,集合的创建、添加、删除、遍历、判断等功能

  • 创建、添加、删除

package com.collection.collectionDemo;
​
import java.util.ArrayList;
import java.util.Collection;
​
public class Demo01 {
    public static void main(String[] args) {
        //1.集合的创建  实例化collection的实现类 ArrayList
        Collection collection = new ArrayList();
        //2.向集合中添加数据,用add方法
        collection.add("橘子");
        collection.add("西瓜");
        collection.add("葡萄");
        collection.add("芒果");
        System.out.println(collection);
        //size方法查看集合中元素的个数
        System.out.println("元素个数为:"+collection.size());
​
        //3.删除元素,用remove
        collection.remove("芒果");
        System.out.println(collection);
    }
}

image-20220723101143981

 

  • 数组的遍历

1.forEach 循环 不能用for循环,原因是collection的这些方法中都没有下标,而for循环是有下标的)

package com.collection.collectionDemo;
​
import java.util.ArrayList;
import java.util.Collection;
​
public class Demo01 {
    public static void main(String[] args) {
        //1.集合的创建  实例化collection的实现类 ArrayList
        Collection collection = new ArrayList();
        //2.向集合中添加数据,用add方法
        collection.add("橘子");
        collection.add("西瓜");
        collection.add("葡萄");
        collection.add("芒果");
        System.out.println(collection);
        //size方法查看集合中元素的个数
        System.out.println("元素个数为:"+collection.size());
​
        for (Object o:
             collection) {
            System.out.println(o);
        }
    }
}

image-20220723101605366

2.iterator() 迭代器

  • iterator() 的返回值 是 Iterator 对象,它是一个接口

  • Iterator 有三个方法:

    • hasNext() 如果仍有元素可以迭代,则返回true

    • next() 返回迭代的下一个元素

    • remove() 从迭代器指向的 collection 中移除迭代器返回的最后一个元素

      • 在迭代过程中,只能用remove删除,不能用collection删除

  • 进行迭代时,先用hasNext() 方法 判断有没有元素,如果有就调用next() 将该元素取出来,然后指针后移,在用hasNext() 方法 判断,如果没有元素就返回false

package com.collection.collectionDemo;
​
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
​
public class Demo01 {
    public static void main(String[] args) {
        //1.集合的创建  实例化collection的实现类 ArrayList
        Collection collection = new ArrayList();
        //2.向集合中添加数据,用add方法
        collection.add("橘子");
        collection.add("西瓜");
        collection.add("葡萄");
        collection.add("芒果");
        System.out.println(collection);
        //size方法查看集合中元素的个数
        System.out.println("元素个数为:"+collection.size());
​
        Iterator it = collection.iterator();
        while (it.hasNext()){   //判断有没有元素
            String s = (String)it.next();    //有就取出来,把Object强制类型转换为String
            System.out.println(s);
            it.remove();         //也可以删除该元素
        }
        System.out.println(collection.size());
    }
}

image-20220723103058765

 

注意:在迭代过程中,不可以使用collection的方法,否则会有并发修改异常

image-20220723103307323

 

  • 判断

1.contains(o) //判断集合中有没有o对象

2.isEmpty() //判断集合是否为空

package com.collection.collectionDemo;
​
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
​
public class Demo01 {
    public static void main(String[] args) {
        //1.集合的创建  实例化collection的实现类 ArrayList
        Collection collection = new ArrayList();
        //2.向集合中添加数据,用add方法
        collection.add("橘子");
        collection.add("西瓜");
        collection.add("葡萄");
        collection.add("芒果");
        System.out.println(collection);
        //size方法查看集合中元素的个数
        System.out.println("元素个数为:"+collection.size());
​
        System.out.println("有没有西瓜:"+collection.contains("西瓜"));
        System.out.println("集合是否为空:" + collection.isEmpty());
    }
}

image-20220723103844353

 

  • 使用Collection保存学生信息

package com.collection.collectionDemo;
​
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
​
public class Demo02 {
    public static void main(String[] args) {
        //1创建集合和学生信息
        Collection collection = new ArrayList();
​
        Student s1 = new Student("张三",20);
        Student s2 = new Student("李四",18);
        Student s3 = new Student("王五",19);
​
        //2将学生信息添加到集合中
        collection.add(s1);
        collection.add(s2);
        collection.add(s3);
        System.out.println(collection.toString());
​
        //删除学生信息
        System.out.println("--------删除之后学生信息--------");
        collection.remove(s1);
        System.out.println(collection.toString());
        //遍历
        System.out.println("--------forEach遍历--------");
        for (Object o: collection) {
            Student s = (Student) o;
            System.out.println(s.toString());
        }
        System.out.println("--------Iterator遍历--------");
        Iterator it = collection.iterator();
        while(it.hasNext()){
            Student s = (Student) it.next();
            System.out.println(s);
        }
        //判断
        System.out.println("集合中是否包含s1:" + collection.contains(s1));
        System.out.println("集合是否为空:" + collection.isEmpty());
    }
}

image-20220723110603741

 

  • 除了上面提到的方法,还有一下方法:

    • boolean addAll(Collection c) //将一个集合中的所有对象添加到此集合中

      • package com.collection.collectionDemo;
        ​
        import java.util.ArrayList;
        import java.util.Collection;
        import java.util.Iterator;
        ​
        public class Demo01 {
            public static void main(String[] args) {
                //1.集合的创建  实例化collection的实现类 ArrayList
                Collection collection = new ArrayList();
                //2.向集合中添加数据,用add方法
                collection.add("橘子");
                collection.add("西瓜");
                collection.add("葡萄");
                collection.add("芒果");
        ​
                //创建一个新的集合
                Collection collection1 = new ArrayList();
                System.out.println("collection1集合元素个数为:"+collection1.size());
                //把collection 中的元素添加到collection1
                collection1.addAll(collection);
                System.out.println("collection1集合元素为:"+collection1);
            }
        }
        ​

        image-20220723111554899

     

     

    • boolean equals(Object o) //比较此集合是否与指定对象相等,比较两个集合是否相等

    • package com.collection.collectionDemo;
      ​
      import java.util.ArrayList;
      import java.util.Collection;
      import java.util.Iterator;
      ​
      public class Demo01 {
          public static void main(String[] args) {
              //1.集合的创建  实例化collection的实现类 ArrayList
              Collection collection = new ArrayList();
              //2.向集合中添加数据,用add方法
              collection.add("橘子");
              collection.add("西瓜");
              collection.add("葡萄");
              collection.add("芒果");
      ​
              //创建一个新的集合
              Collection collection1 = new ArrayList();
              System.out.println("collection1集合元素个数为:"+collection1.size());
              //把collection 中的元素添加到collection1
              collection1.addAll(collection);
              collection1.add("香蕉");
              System.out.println("collection1集合元素为:"+collection1);
      ​
              System.out.println("两个集合是否相等:"+collection.equals(collection1));
          }
      }

     

    image-20220723112442328

     

    • clear() //清空此集合中所有对象

    package com.collection.collectionDemo;
    ​
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    ​
    public class Demo01 {
        public static void main(String[] args) {
            //1.集合的创建  实例化collection的实现类 ArrayList
            Collection collection = new ArrayList();
            //2.向集合中添加数据,用add方法
            collection.add("橘子");
            collection.add("西瓜");
            collection.add("葡萄");
            collection.add("芒果");
    ​
            //创建一个新的集合
            Collection collection1 = new ArrayList();
            System.out.println("collection1集合元素个数为:"+collection1.size());
            //把collection 中的元素添加到collection1
            collection1.addAll(collection);
            collection1.clear();
            collection1.add("香蕉");
            System.out.println("collection1集合元素为:"+collection1);
        }
    }

    image-20220723112747317

     

    • Object[] toArray() //将此集合转换成数组

    package com.collection.collectionDemo;
    ​
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    ​
    public class Demo01 {
        public static void main(String[] args) {
            //1.集合的创建  实例化collection的实现类 ArrayList
            Collection collection = new ArrayList();
            //2.向集合中添加数据,用add方法
            collection.add("橘子");
            collection.add("西瓜");
            collection.add("葡萄");
            collection.add("芒果");
    ​
            Object[] o = collection.toArray();
            for (Object str:
                 o) {
                System.out.println(str);
            }
        }
    }

    image-20220723113219849

posted @ 2022-07-23 11:34  GrowthRoad  阅读(39)  评论(0编辑  收藏  举报