JAVA集合框架

1、集合

集合可以看作是一种容器,用来存储信息。所有集合类都位于java.util包下,但支持多线程的集合类位于java.util.conccurrent包下。
java集合类主要由两个根接口Collection和Map派生出来的,Collection派生出了三个子接口:List,Set,Queue,因此Java集合大致也可分成List、Set、Queue、Map四种接口体系,(注意:Map不是Collection的子接口)。
List:有序可重复集合,可以根据元素的索引来访问。
Set:无序不可重复集合,只能根据元素本身来访问。
Queue:是队列集合
Map:是存储key-value对的集合,可根据元素的key来访问value。

2、Collection接口方法

在这里插入图片描述
2、SET集合和Collection接口中的方法相同,只是add()不同,Set集合不允许存储相同的元素,否则返回false。

public class test{
    public static void main(String[] args){
	Set<String> set = new HashSet<String>();
	set.add("hello world");
	set.add("hello world");
	System.out.println(set.toString);
	}
}

因为,String类中重写了hashCode()equals()方法,用来比较指向的字符串对象所存储的字符串是否相等。
Collection接口示例

Collection<String> list = new ArrayList<>();

HashSet类

HashSet是按照hash算法来存储元素的,因此有很好的存取和查找性能。
1、HashSet的特点
(1)不能保证元素的顺序。
(2)不是线程同步的,所以如果是多线程操作的话,需要用代码保证其同步。
(3)集合元素值可以是null。
2、HashSet存储原理:
当HashSet存储一个元素时,会调用该对象的hashCode()方法得到hashCode值,根据这个值决定该对象的储存位置。
HashSet判断两个元素相等的标准:
(1)两个对象通过equals()方法比较返回true;
(2)两个元素的hashCode()方法返回值相等。
必须要两个条件同时满足。
当然如果hashCode()返回true,而equals()返回false,HashSet会以链式结构将两个对象保存在同一位置,这将会导致性能下降,因此在编码时应避免。
3、HashSet查找原理
也是先计算元素的hashCode方法的返回值,然后直接到返回值对应的位置取出元素,所以HashSet取出元素速度很快。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值