• Java回顾-集合概述-Collection的使用


    一、集合概述

           面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用Array存储对象具有一些弊端,而Java 集合就像一种容器,可以动态地把多个对象的引用放入容器中。

            1.数组在内存存储方面的特点:

                    -数组初始化以后,长度就确定了。

                    -数组声明的类型,就决定了进行元素初始化时的类型

            2.数组在存储数据方面的弊端:

            -数组初始化以后,长度就不可变了,不便于扩展

            -数组中提供的属性和方法少,不便于进行添加、删除、插入等操作, 且效率不高。

            -同时无法直接获取存储元素个数

            -数组存储的数据是有序的、可以重复的,存储数据的特点单一

            -Java 集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组。

    二、集合框架

    -Java集合分为 CollectionMap 两种体系

     

     

            1. Collection 接口单列数据, 用来存储一个一个对象

                    -List接口: 元素有序可重复的集合    (“动态”数组)

                                    -ArrayList、LinkedList、Vector

                    -Set接口: 元素无序不可重复的集合   ( 高中讲的“集合”)

                                    -HashSet、LinkedHashSet、TreeSet

            2. Map接口 双列数据,保存具有映射关系“key-value对”的集合     (高中的“函数”)

                                    -HashMap、LinkedHashMap、TreeMap、Hashtable、Properties

    三、 Collection 方法的使用

            注:在Collection接口的实现类的对象中添加数据obj(自定义)时,要求obj所在类要重写equals(),这样才能正确使用containsremove等方法,因为它们要用到equals(),如果不重写比较的是内存地址

            1、add(Object e)  元素e添加到集合中

            2、size()获取元素个数

            3、addAll(Collection coll) 将coll集合中的元素添加到当前集合

            4、isEmpty()判断集合是否为空

            5、clear( )清空集合

            6、contains(Object o)当前集合是否包含 o,判断时会调用 o 对象所在类的equals()

            7、containsAll(Collection coll)判断coll中所有元素是否在当前集合中

            8、remove()移除某个元素

            9、removeAll(Collection coll)差集:从当前集合中移除coll中所有的元素

            10、retainAll(Collection coll)交集:获取当前集合与coll的交集,并返回给当前的集合

            11、equals(Object obj)判断obj集合是否与当前集合相同(元素是有序的)

            12、hashCode()返回当前对象的哈希值

            13.  toArray()集合 -> 数组

            14、Arrays.asList( )  (静态方法asList)数组 -> 集合

            15、iterator():返回迭代器对象,用于集合遍历

    四、遍历集合的两种方式

     1.迭代器Iterator

            -Iterator对象称为迭代器,主要用于遍历 Collection 集合中的元素

            -Collection接口继承了java.lang.Iterable接口,该接口有一个iterator()方法,所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了Iterator接口对象

            - Iterator 仅用于遍历集合, Iterator 本身并不提供承装对象的能力。如果需要创建Iterator 对象,则必须有一个被迭代的集合。

            - 集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认指针都在集合的第一个元素之前。

    1. -hasNext()
    2. //判断集合是否有下一个元素
    3. -next()
    4. //返回下一个元素
    5. Iterator iterator=list.iterator();
    6. while(iterator.hasNext()){
    7. System.out.println(iterator.next());
    8. }

            可以利用Iterator对象删除集合元素  -remove( )

     注意:

            Iterator可以删除集合的元素, 但是是遍历过程中通过迭代器对象的remove方法不同于集合对象的remove方法。

    2.增强for循环

            - 遍历操作不需获取Collection或数组的长度,无需使用索引访问元素。

            -遍历集合的底层调用Iterator完成操作。

    1. for(Integer e:list){
    2. System.out.println(e);
    3. }

  • 相关阅读:
    Vue页面使用Vue3语法
    MySQL执行计划EXPLAIN
    堆 超详细的带图总结
    fegin 单客户端配置类方式设置配置
    一键实现冒泡排序算法,代码质量有保障!
    C# 一周入门高级编程之《C#-接口》Day Two
    牛客 NC24307 [USACO 2012 Dec S]Milk Routing
    presto和hive中grouping sets的格式不一致问题
    完美运营版商城/拼团/团购/秒杀/积分/砍价/实物商品/虚拟商品等全功能商城
    .net 7 上传文件踩坑
  • 原文地址:https://blog.csdn.net/weixin_62427168/article/details/125467132