Java集合常用类特点

集合的结构如下图所示:


集合的两个顶级接口分别为:Collection和Map

Collection下有两个比较常用的接口分别是List(列表)和Set(集),其中List可以存储重复元素,元素是有序的(存取顺序一致),可以通过List脚标来获取指定元素;而Set不可以有重复元素,元素是无序的。

List接口中,比较常用的类有三个:ArrayList、Vactor、LinkedList。

ArrayList :线程不安全的,对元素的查询速度快。

Vector :线程安全的,多了一种取出元素的方式:枚举(Enumeration),但已被ArrayList取代。

LinkedList :链表结构,对元素的增删速度很快。

Set接口中,比较常用的类有两个:HashSet、TreeSet:

HashSet:要保证元素唯一性,需要覆盖掉Object中的equals和hashCode方法(因为底层是通过这两个方法来判断两个元素是否是同一个)。

     

TreeSet:以二叉树的结构对元素进行存储,可以对元素进行排序。

      排序的两种方式:

             1、元素自身具备比较功能,元素实现Comparable接口,覆盖compareTo方法。

             2、建立一个比较器对象,该对象实现Comparator接口,覆盖compare方法,并将该对象作为参数传给TreeSet的构造函数(可以用匿名内部类)。

 

Map接口其特点是:元素是成对出现的,以键和值的形式体现出来,键要保证唯一性:常用类有:HashMap,Hashtable ,TreeMap。

HashMap:线程不安全等的,允许存放null键null值。

Hashtable:线程安全的,不允许存放null键null值。

TreeMap:可以对键进行排序(要实现排序方法同TreeSet)。

Collection和Map两个接口对元素操作的区别:

存入元素:

Collection接口下的实现类通过add方法来完成,而Map下是通过put方法来完成。

取出元素:

Collection接口下:List接口有两种方式:1、get(脚标);2、通过Iterator迭代方式获取元素;而Vactor多了一种枚举(Enumeration)的方式。Set接口通过迭代的方式获取元素。

Map接口下:先通地keySet获取键的系列,然后通过该系列使用Iterator迭代方式获取元素值。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java常用集合类包括 List、Set、Map、Queue 等,它们分别具有以下特点: 1. ListList 接口是有序的集合,可以根据索引位置访问元素。常用的实现有 ArrayList 和 LinkedList。ArrayList 实现了可变大小的数组,查询效率高,修改效率较低;LinkedList 实现了链表,查询效率较低,插入和删除效率高。 2. Set:Set 接口是无序的集合,不允许有重复元素。常用的实现有 HashSet 和 TreeSet。HashSet 通过哈希表实现,插入和查询效率较高;TreeSet 通过红黑树实现,可以按照元素的自然顺序或者自定义比较器进行排序。 3. Map:Map 接口是键值对的集合,每个键最多只能映射到一个值。常用的实现HashMap 和 TreeMap。HashMap 通过哈希表实现,插入和查询效率较高;TreeMap 通过红黑树实现,可以按照键的自然顺序或者自定义比较器进行排序。 4. Queue:Queue 接口是一种先进先出(FIFO)的集合常用的实现有 LinkedList 和 PriorityQueue。LinkedList 实现了双端队列,可以在队头和队尾进行插入和删除操作;PriorityQueue 实现了优先队列,可以根据元素的自然顺序或者自定义比较器进行排序。 以上集合类都是线程不安全的,如果需要使用线程安全的集合类,可以使用对应的线程安全,如 Vector、Hashtable、ConcurrentHashMap、ConcurrentLinkedQueue 等。 总的来说,Java集合类丰富、易用,可以满足各种不同的需求,是 Java 编程中不可或缺的一部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值