JavaSE--集合概述以及Collection接口中常用方法

1、Java集合框架概述

  • 集合、数组都是对多个数据进行存储操作的结构,简称和Java容器。
    说明:此时的存储,主要是指内存层面的存储,不涉及到持久化的存储(.txt,.kpg,。avi,数据库中)

  • 数组在存储多个数据方面的特点(优点):
    1、 一旦初始化以后,器长度就确定了。
    2、 数组一旦定义好,其元素的类型也就基本确定了。我们也就只能操作指定类型的数据量。
    比如:String[] arr; int[] arr1 Object[] arr2;

  • 数组在存储多个数据方面的缺点
    1、 一旦初始化后长度就确定了
    2、 数组中提供的方法非常有限,对于添加、删除、修改、插入数据等操作,非常不便
    3、 获取数组中实际元素的个数的需求,数组没有现成的属性或者方法可用
    4、数组存储数据的特点:有序可重复。对于无序、不可重复的需求,不能满足。

在这里插入图片描述

2、集合的使用场景

3、Java中集合的分类

* Collection接口:单列集合,用来存储一个一个的对象
*    List接口:存储有序的,可重复的。             --->”动态“的存储
*        ArrayListLinkedListVector
*    Set接口:存储无序的,不可重复的。            ---> 高中讲的‘集合"
*        HashSetLinkedHashSetTreeSet
* Map接口:双列集合,用来存储一堆(key - value)一对的数据。   -->高中的函数
*        HashMapLinkedHaspMapTreeMapHashTableProperties

在这里插入图片描述

3.1、Collection集合继承树

在这里插入图片描述

3.2、Collection集合的常用方法

常用方法1(5个):

3.2.1、add(Object obj):将元素obj添加到集合coll中

3.2.2、size():获取添加的元素的个数

3.2.3、addAll(Collection coll):将集合coll1中的元素全部添加到当前的集合中

3.2.4、isEmpty():判断当前集合元素是否为空

3.2.5、clear():清空集合元素

public class CollectionTest01 {
    
    
    @Test
    public void test01(){
    
    
        Collection coll = new ArrayList();

        //1、add(Object obj):将元素obj添加到集合coll中
        coll.add("aaa");
        coll.add("bbb");
        coll.add(123);
        coll.add(new Date());

        //2、size():获取添加的元素的个数
        System.out.println(coll.size());

        //3、addAll(Collection coll):将集合coll1中的元素全部添加到当前的集合中
        Collection coll1 = new ArrayList();
        coll1.add(456);
        coll1.add("CC");
        coll.addAll(coll1);

        //4、clear():清空集合元素
        //coll.clear();

        //5、isEmpty():判断当前集合元素是否为空
        System.out.println(coll.isEmpty());
    }
}

在这里插入图片描述
常用方法2(2个查看是否包含某个元素的方法):

3.2.6、contains(Object obj):判断当前集合中是否包含obj

3.2.7、containsAll(Collection coll1):判断形参coll1中的所有元素是否在集合中

public class CollectionTest02 {
    
    
    @Test
    public void test(){
    
    
        Collection coll = new ArrayList();
        coll.add(123);
        coll.add("abc");
        coll.add(new String("Tom"));
        coll.add(new Person("liming","20"));

        //1、contains(Object obj):判断当前集合中是否包含obj
        //在进行判断时调用的是obj的equals方法
        System.out.println(coll.contains(123));

        //2、containsAll(Collection coll1):判断形参coll1中的所有元素是否在集合中
        Collection coll1 = Arrays.asList(123,"abc");
        System.out.println( coll.containsAll(coll1));
    }
}

在这里插入图片描述
常用方法3(移除的方法):

3.2.8、remove(Object obj):从当前集合中移除obj元素

3.2.9、removeAll(Collection coll1):从当前集合中移除coll1中的元素

在这里插入图片描述常用方法4:

3.2.10、 retainAll(Collection coll1):交集。获取当前集合和coll1的交集,并返回当前集合

3.2.11、equals(Collection coll2):要想返回true,需要当前集合和我们的形参coll2元素一致

在这里插入图片描述

常用方法5:

3.2.12、hashCode()判断当前集合的hash值

3.2.13、toArray():将集合转化为数组

在这里插入图片描述

3.2.14、iterator():返回Iterator接口实例,用于遍历集合

// 集合元素的遍历操作,使用迭代器Iterator接口。
// 内部的方法:haseNext()和next()
public class IteratorTest {
    
    
    @Test
    public void test01(){
    
    
        Collection collection = new ArrayList();
        collection.add("123");
        collection.add(true);
        collection.add(new Person("zhangsan","18"));
        collection.add(456);
 // 返回Iterator接口实例,用于遍历集合
        Iterator iterator = collection.iterator();
        while (iterator.hasNext()){
    
    
            Object next = iterator.next();
            System.out.println(next);
        }
    }
}

在这里插入图片描述

3.3、Iterator迭代器接口

Iterator不是容器,是一个迭代器,用于迭代元素。

在这里插入图片描述

3.3.1、Iterator接口中的方法

在这里插入图片描述

//iterator.remove()方法
@Test
public void test02(){
    
    
     Collection collection = new ArrayList();
     collection.add("123");
     collection.add(true);
     collection.add(new Person("zhangsan","18"));
     collection.add(456);

     //删除集合中的123
     Iterator iterator = collection.iterator();
     while (iterator.hasNext()){
    
    //判断集合中是否有下一个值
         Object next = iterator.next();//集合中有下一个值,获取到写一个值
         if("123".equals(next)){
    
    //如果下一个值是123
             iterator.remove();//则从集合中移除123
         }
     }//当指针走到这时,已经遍历完整个集合,又回到了开始
     
     //此时集合中已经移除了123,再次获取iterator,遍历集合
     iterator = collection.iterator();
     while (iterator.hasNext()){
    
    
         System.out.println(iterator.next());
     }
 }

3.3.2、Iterator迭代器执行原理

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_46112274/article/details/123973237