Java常见集合知识详解

本文详细介绍了Java集合框架的各种类型,包括List、Set、Map等,分析了每种类型的特性和应用场景,例如ArrayList适用于频繁查询而LinkedList适用于频繁增删的情况。

集合的种类

常见的集合类分如下几个种类:

  • Collection

    - List
        - ArrayList
        - LinkedList
    - Set
        - HashSet
        - TreeSet
  • Map

    - HashMap
    - TreeMap

Collection 详解

Collection接口是List和Set接口的父接口,也是集合类(Map除外)根接口。 里面定义了很多的集合操作方法,源码就不放了,我讲=将里面涉及到的一些方法截图出来,如图所示:
图片描述
这里面的方法可以自行百度其用法。

List接口

List集合中元素的存放特点是:元素有序,同一元素可重复。List接口存在两个实现类,ArrayList和LinkedList。两者之间虽然都是用于存放有序可重复的元素,但是两者之间存在一定的区别;

1.ArrayList:底层实现是一个动态数组,查询通过数组下标查询;
2.LinkedList:底层实现是链表结构,查询的过程需要重头到位一个一个过滤对比

总结:所以我们可以得出 ArrayList 查询速度要优于LinkedList,但是LinkedList的插入速度要优于ArrayList;所以我们在使用的过程中,查询多使用 ArrayList ,查询删除多,使用 LinkedList 。

Set集合

HashSet

HashSet类直接实现了Set接口, 其底层其实是包装了一个HashMap去实现的。HashSet采用HashCode算法来存取集合中的元素,因此具有比较好的读取和查找性能。

HashSet的特征

  • 不能保证元素插入的顺序,因为HashSet按HashCode存储对象(元素)决定的,对象变化则可能导致HashCode变化
  • HashSet是线程非安全的
  • HashSet元素值可以为NULL

TreeSet类的特征

底层是用TreeMap实现的,本质上是一个红黑树原理。

Map接口

java中的Map集合使用键(key)值(value)来保存数据,其中值(value)可以重复,但键(key)必须是唯一,也可以为空,但最多只能有一个key为空,它的主要实现类有HashMap、TreeMap。

HashMap

HashMap的特征
  • 保存元素时先进后出、无序性;
  • 键值可以为null,但最多只能为一个null;
  • 不支持线程同步,即可以有多个线程同时写HashMap,可能导致数据不一致,如果需要同步可以使用Collection的synchronizedMap方法使其同步。
TreeMap的特征
  • 保存元素key-value不能为null;
  • 允许key-value重复;
  • 遍历元素时随机排列。

总结

Java中集合是一个非常重要的知识点,在实际运用中也是常常会使用到。每个不同的集合类的特征对于我们在使用选择上有着直接关系,所以熟悉他们的特征非常重要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值