Java集合

Java集合概述

Java提供了集合类。集合类主要负责保存,盛装其他数据,因此集合类也称为容器类。所有的集合类都位于java.util包下。

Java的集合类主要有两个接口派生而出:Collection 和 Map,Collection 和 Map 是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。


如图,Java所有集合分成三大类,其中

Set集合类似于一个罐子,添加时,Set无法记住元素的顺序。只能根据元素本身访问

List集合类似于数组,他可以记住添加元素的顺序,且List的长度可变。可以用索引访问

Map集合也像一个罐子,他里面的每项数据都是有两个值(Key - Value)组成。可以用Key访问

对于Set,List,Queue和Map四种集合,最常用的实现类是HashSet,TreeSet,ArrayDeque,LinkedList和HashMap,TreeMap等实现类。

Collection 和 Iterator 接口

Collection接口是List,Set和Queue接口的父接口。

Iterable接口新增了forEach 默认方法。可以使用Lmabda表达式来遍历集合元素。

Set集合

实际上Set就是Collection,只是行为略有不同

Set集合不允许包含相同的元素,如果视图把两个相同的元素放到同一个Set集合中,则添加操作失败,add()方法返回false,且新元素不会被加入。

HashSet类

Hashse是Set接口的典型实现,大多数时候使用Set集合时就是使用这个类实现。HashSet按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能。

HashSet具有以下特点:

1不能保证元素的排列顺序,顺序可能与添加顺序不同,顺序也有可能发生变化。

2HashSet不是同步的,如果多个线程同时访问一个HashSet,假设有两个或者两个以上线程同时修改了HashSet集合时,则必须通过代码来保证其同步

3集合元素值可以是null

当向HashSet集合中存入一个元素时,会调用hashCode()方法来得到该对象的hashCode值,然后根据该hashCode值决定该对象在HashSet中的存储位置

HashSet集合判断两个元素相等的标准是两个对象通过equals方法比较相等,并且两个对象的hashCode()方法返回值也相等。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值