集合类(collection)1

本文详细介绍了Java集合框架中的主要组件,包括List、Set、Map等的基本概念和使用特点,并针对ArrayList、LinkedList、Vector等具体实现进行了对比分析。此外还介绍了HashSet如何通过HashMap实现元素唯一性的原理,以及常用工具类Arrays的部分功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,集合介绍

继承关系基本如下:

Iterable <|-- Collection <| -- List

|----- <| -- Set

 

(1)ArrayList

--------------

写慢,读快(指定下标)。

数组列表

Object[]

Capacity //容量

size //元素的个数

index + offset

List判断对象是否存在,只跟equals有关。

LinkedList

---------------

写快,读慢。

可重复。

 

(2)Vector

---------------

类似于ArrayList,通过Object[]实现。

线程安全的。

 

(3)Set

----------------

元素是唯一的,不重复

无序的。

HashSet和hashMap没有本质区别。

hashSet通过hashmap实现的。

Key<Key,dummy>

 

 

(4)Map

----------------

映射.

Key ---> value //Entry,条目

put(k,v); //1.判断hashcode相同,在判断是否同一对象,如果是同一对象,再判断equals方法

putValue

(e.hash == hash &&

((k = e.key) == key || (key != null && key.equals(k))))

这个HashMap的存储结构有两层:

(1)Node<K,V>[] tab;

(2)Node<K,V>

结合这个图来看,显示根据hash值来放,如果有重复的,就通过链表来链接,Node<K,V>有下一个节点的地址。

 

hash的来由

--------------

h = key.hashCode()) ^ (h >>> 16

更多的特征值决定了hash之后的值。

2,集合的工具类

这一块之前学的有点弱,用的比较少。技术就是这样,如果学的不熟练,技术用起来很不方便。

Arrays这个工具类有诸如如下方法:

--排序

Arrays.sort(arr);

--填充

Arrays.fill(arr, 100);

--二分查询

Arrays.binarySearch(arr, -5);

--转换成数组

Arrays.asList()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值