List、Set集合(都属于Collection集合,单列型)以及Map集合(双列型)

3 篇文章 0 订阅
1 篇文章 0 订阅

注意: 单列型是指 只有值value);双列型是指 键值对形式(key-value

1、List集合

特点: 1)、属于有序集合,存储元素和取出元素的顺序是一样的(存储:123;取出:123)
    2)、具有索引,可以使用一些包含索引的方法(如: 使用 普通 for 循环)
    3)、允许存储重复的元素
    4)、操作索引时,要注意 索引越界 的情况

 (1)、ArrayList集合:底层是 数组结构 ,所以 查询快、增删慢 ;属于有序集合

 (2)、LinkedList集合:底层是 链表结构 ,所以 查询慢、增删快 ;属于有序集合
    1)、LinkedList集合中包含了 大量首尾元素操作 的方法
    2)、使用LinkedList集合 特有方法 时,注意不能使用 多态

 (3)、Vector集合:底层是 数组结构 ,所以 查询快、增删慢 ;属于有序集合
    1)、该集合是 java1 的集合,自 java2 之后该集合就被 ArrayList集合 取代
    2)、Vector集合使用了 synchronized 来修饰方法,所以可看成 线程安全 的ArrayList集合

2、Set集合

特点: 1)、没有索引,不能使用带索引的方法(如:不能 使用普通for 循环)
    2)、不允许 存储重复元素

 (1)、HashSet集合:底层是 哈希表结构 (可查看 哈希表结构 ),所以 查询非常快,属于 序集合
    1)、HashSet集合不允许存储重复元素,是因为 java自带对象均重写了 hashCode() 和 equals()
    2)、HashSet集合存储自定义对象时,为保证元素不能重复,需要 重写 hashCode() 和 equals()

 (2)、LinkedHashSet集合:底层是 哈希表再加一条链表 ,所以 查询非常快,属于 序集合

 (3)、TreeSet集合:底层是 二叉树结构

3、Map集合(可查看 Map集合的遍历方法与List集合、Set集合、Map集合的of 方法

特点: 1)、Map集合中的 key与value的数据类型 可以相同,也可以不同
    2)、Map集合中的key不允许重复,但是value允许重复
    3)、Map集合中,key和value是一一对应

 (1)、HashMap集合:底层是 哈希表结构 (可查看 哈希表结构 ),所以 查询非常快,属于 序集合
    1)、HashMap集合不允许存储重复元素,是因为 java自带对象均重写了 hashCode() 和 equals()
    2)、HashMap集合存储自定义对象时,为保证元素不能重复,需要 重写 hashCode() 和 equals()

 (2)、LinkedHashMap集合:底层是 哈希表再加一条链表 ,所以 查询非常快,属于 序集合

 (3)、HashTable集合:底层是 哈希表结构(可查看 哈希表结构 ),所以 查询非常快,属于 序集合
    HashTable集合与HashMap集合的比较
     1)、HashTable集合:线程安全、速度较慢;不允许存储null值、null键;
     2)、HashMap集合:线程不安全、速度较快;允许存储null值、null键;
     3)、HashTable集合在 java2开始被HashMap集合取代
        但是HashTable集合的子类Properties集合是所有集合中唯一一个能和IO流相结合的集合

4、小结

此处暂且不论Vector集合与TreeSet集合,为容易比较,哈希表简称哈希
 (1)、ArrayList集合:
   列集合;底层是数组结构,创建最快、查询较快、增删最慢;有序;可以重复元素;有索引;
 (2)、LinkedList集合:
   列集合;底层是链表结构,创建较快、查询最慢、增删较快;有序;可以重复元素;有索引;
 (3)、HashSet集合:
   列集合;底层是哈希结构,创建最慢、查询最快、增删最快;无序;不可重复元素;无索引;
 (4)、LinkedHashSet集合:
   列集合;底层是哈希结构,创建最慢、查询最快、增删最快;有序;不可重复元素;无索引;
 (5)、HashMap集合:
   列集合;底层是哈希结构,创建最慢、查询最快、增删最快;无序;键可但值不可;无索引;
 (6)、LinkedHashMap集合:
   列集合;底层是哈希结构,创建最慢、查询最快、增删最快;有序;键可但值不可;无索引;


注: 可以发现,各个集合的特点,跟其底层数据结构的关系是密不可分的;
   如:Set集合和Map集合,很多特点都是相同的,因为它们的底层数据结构都是哈希表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值