集合详解(二)--Set集合

Set集合
一.集合的特性
Set集合与Collection的用法基本相同
但是Set集合通常不会记住元素的添加顺序,并且Set集合不允许包含相同的元素.
例如:
 public static void setDemo(){
       HashSet<String> setData = new HashSet<>();
       setData.add("1");
       setData.add("1");
       setData.add("2");
       setData.add("2");
       System.out.println("集合的元素为:"+setData);
   }
执行结果为集合的元素为:[1, 2]


二.利用Set集合中不允许包含相同元素的特性可以实现去除重复的操作
示例1(对数组集合元素去除重复)
public static void setDemo2(){
String[] stringData = {"1","2","3","1","2","3","4"};
//将数组的元素添加到集合中
HashSet<String> setData = new HashSet<>();
for(int i = 0;i<stringData.length;i++){
setData.add(stringData[i]);
}
System.out.println("集合的元素为:"+setData);

}
运行结果为:集合的元素为:[1, 2, 3, 4]
示例2(对List集合元素去除重复)
public static void setDemo3() {
ArrayList<String> listData = new ArrayList<>();
listData.add("1");
listData.add("1");
listData.add("2");
listData.add("2");
listData.add("3");
listData.add("4");
System.out.println("ArrayList的集合元素为:" + listData);
// 将ArrayList的集合元素添加到Set集合中
HashSet<String> hashSet = new HashSet<>();
hashSet.addAll(listData);
System.out.println("HashSet集合的元素为:"+hashSet);
}
运行结果:ArrayList的集合元素为:[1, 1, 2, 2, 3, 4]
HashSet集合的元素为:[1, 2, 3, 4]

三.HashSet的介绍
HashSet是按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能.
HashSet的特点
不能保证集合的排列顺序,顺序可能和添加顺序不同,顺序也有可能发生变化.
集合的元素可以是null
当向HashSet集合中存入一个元素时,HashSet会调用该对象的hashCode()方法来得到该对象的hashCode值,然后根据
该hashCode值决定该对象在HashSet中的存储位置.
HashSet集合判断两个集合元素是否相等的标准是两个对象通过equals()方法比较相等,并且两个对象的hashCode()方法的返回值也相等(
也就是说如果两个对象通过equals()方法比较返回true,但如果他们的hashcode值不相等,那么HashSet依然将他们放在不同的存储位置上,
他们依然可以添加成功).
注意:当把一个对象放入HashSet集合中时,如果需要重写equals()方法,那么也应该重写hashCode()方法.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值