• 集合介绍


    1,什么是集合

    存储对象的容器,面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,存储对象,集合是存储对象最常用的一种方式。

    集合的出现就是为了持有对象集合中可以存储任意类型的对象, 而且长度可变在程序中有可能无法预先知道需要多少个对象, 那么用数组来装对象的话,

    长度不好定义, 而集合解决了这样的问题

    2,集合和数组的关系

    数组和集合类都是容器

    数组长度是固定的(存储类型单一,数组一旦声明好不可变集合长度是可变的。

    数组中可以存储基本数据类型,对象数组中存储数据类型是单一的,集合中可以存储任意类型的对象。

    集合类的特点

       用于存储对象,长度是可变的,可以存储不同类型的对象。

    3,集合的分类

    集合做什么

    1:将对象添加到集合

    2:从集合中删除对象

    3: 从集合中查找一个对象

    4:从集合中修改一个对象就是增删改查

    注意:集合和数组中存放的都是对象的引用而非对象本身

    ---|Collection: 单列集合

              ---|List: 有存储顺序, 可重复

                     ---|ArrayList: 数组实现, 查找快, 增删慢, 由于是数组实现, 在增和删的时候会牵扯到数组

                  增容, 以及拷贝元素. 所以慢数组是可以直接按索引查找, 所以查找时较快

                     ---|LinkedList: 链表实现, 增删快, 查找慢, 由于链表实现, 增加时只要让前一个元素记住自

                  己就可以, 删除时让前一个元素记住后一个元, 后一个元素记住前一个元素.

                  这样的增删效率较高但查询时需要一个一个的遍历, 所以效率较低

                     ---|Vector:  ArrayList原理相同, 但线程安全, 效率略低,ArrayList实现方式相同,

                  但考虑了线程安全问, 所以效率略低

              ---|Set: 无存储顺序, 不可重复

                     ---|HashSet

                     ---|TreeSet

                     ---|LinkedHashSet

    ---| Map: 键值对

             ---|HashMap

             ---|TreeMap

             ---|HashTable

             ---|LinkedHashMap

    为什么出现这么多集合容器,因为每一个容器对数据的存储方式不同,这种存储方式称之为数据结构(data structure

    注意 集合和数组中存放的都是对象的引用。

    4,什么时候使用什么样的集合

    Collection

    我们需要保存若干个对象的时候使用集合。

    List

    如果我们需要保留存储顺序, 并且保留重复元素, 使用List.

    如果查询较多, 那么使用ArrayList

    如果存取较多, 那么使用LinkedList

    如果需要线程安全, 那么使用Vector

    Set

    如果我们不需要保留存储顺序, 并且需要去掉重复元素, 使用Set.

    如果我们需要将元素排序, 那么使用TreeSet

    如果我们不需要排序, 使用HashSet, HashSet比

    TreeSet效率高.

    如果我们需要保留存储顺序, 又要过滤重复元素, 那么使用LinkedHashSet

  • 相关阅读:
    MySQL--CREATE INDEX在各版本的优化
    MySQL--各版本DDL 操作总结
    MySQL--事务隔离级别RR和RC的异同
    MySQL--运维内参中的binlog_summary脚本
    认知:人性
    诉衷情
    初中生读物
    DTO和Entity转换
    layui开发常用插件列表
    mongodb配置
  • 原文地址:https://www.cnblogs.com/ithome0222/p/8858986.html
Copyright © 2020-2023  润新知