Java集合之HashSet
来源:互联网 发布:网络侵权案件的管辖 编辑:程序博客网 时间:2024/06/06 12:23
package com.lirui.hashset;
import java.util.HashSet;
import java.util.Iterator;
/*
* HashSet底层是基于HashMap实现的,封装了一个HashMap对象来存储所有对象的元素,所有放入HashSet中的元素
public class HashSetTest {
private String city;
private double averageSalary;
public HashSetTest() {
}
public HashSetTest(String city, double averageSalary) {
this.city = city;
this.averageSalary = averageSalary;
}
public String getCity() {
return city;
}
public double averageSalary() {
return averageSalary;
}
@Override
public int hashCode() {
return city.hashCode();
}
@Override
public boolean equals(Object obj) {
if (hashCode() == obj.hashCode())
return true;
else {
return false;
}
}
@Override
public String toString() {
return city + ":" + String.valueOf(this.averageSalary);
}
public static void main(String[] args) {
HashSet<HashSetTest> set = new HashSet<>();
set.add(new HashSetTest("nanjing", 6410.2));
set.add(new HashSetTest("hangzhou", 7120.3));
set.add(new HashSetTest("xianning", 3521.0));
System.out.println(set);
System.out.println(set);
System.out.println(set.size()); //集合中元素的个数
System.out.println("是否为空:" + set.isEmpty());
Iterator iterator = set.iterator();
while (iterator.hasNext()) { //迭代器遍历set中的元素
System.out.print(iterator.next() + " ");
}
System.out.println();
set.clear();
System.out.println("是否为空:" + set.isEmpty());
}
}
import java.util.HashSet;
import java.util.Iterator;
/*
* HashSet底层是基于HashMap实现的,封装了一个HashMap对象来存储所有对象的元素,所有放入HashSet中的元素
* 都保存在HashMap的key中,value中则存储一个静态Object对象,我们先来看看具体实现
*看这个链接 http://alex09.iteye.com/blog/539549
*/
public class HashSetTest {
private String city;
private double averageSalary;
public HashSetTest() {
}
public HashSetTest(String city, double averageSalary) {
this.city = city;
this.averageSalary = averageSalary;
}
public String getCity() {
return city;
}
public double averageSalary() {
return averageSalary;
}
@Override
public int hashCode() {
return city.hashCode();
}
@Override
public boolean equals(Object obj) {
if (hashCode() == obj.hashCode())
return true;
else {
return false;
}
}
@Override
public String toString() {
return city + ":" + String.valueOf(this.averageSalary);
}
public static void main(String[] args) {
HashSet<HashSetTest> set = new HashSet<>();
set.add(new HashSetTest("beijing", 8600.3)); //插入新的元素
set.add(new HashSetTest("wuhan", 5620.4));set.add(new HashSetTest("nanjing", 6410.2));
set.add(new HashSetTest("hangzhou", 7120.3));
set.add(new HashSetTest("xianning", 3521.0));
System.out.println(set);
boolean flag = set.add(new HashSetTest("beijing", 7452.0));
//这里会插入失败,因为重写了equal方法,而set集合不能保存重复元素,只要city相同,这里判断就是相同的元素
System.out.println("插入是否成功:" + flag);System.out.println(set);
System.out.println(set.size()); //集合中元素的个数
System.out.println("是否为空:" + set.isEmpty());
Iterator iterator = set.iterator();
while (iterator.hasNext()) { //迭代器遍历set中的元素
System.out.print(iterator.next() + " ");
}
System.out.println();
set.remove(new HashSetTest("beijing", 7600.3));
//这里会删除元素是无论新创建一个对象,还是原有对象,只要city相同,就会判断和集合中元素相同,然后将该元素删掉,所以我们定义equal()方法时
//一定要注意使用场景。
set.clear();
System.out.println("是否为空:" + set.isEmpty());
}
}
阅读全文
0 0
- Java集合之HashSet
- java集合之HashSet
- Java集合之HashSet
- Java集合之HashSet
- Java集合之HashSet
- java 之 集合(hashSet)示例
- java集合框架之HashSet
- Java集合之Set(HashSet)
- Java集合系列之HashSet源码分析
- java学习之Set集合、HashSet
- Java集合之HashSet和LinkedHashSet
- java集合框架之HashSet类
- Java集合之HashSet源码分析
- JAVA集合之---TreeSet、HashSet、EnumSet
- Java基础之集合框架--HashSet
- Java集合之HashSet,LinkedHashSet源码分析
- 小东吖 之 java Set接口 HashSet集合 TreeSet集合
- Set集合之HashSet
- 嵌入式软件工程师待遇
- 落单的数
- 有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位.
- 数据结构——链式栈
- JAVA-------反射
- Java集合之HashSet
- java基础复习--复习总结8
- Linux平台延时之sleep、usleep、nanosleep、select比较
- Git- [!remote rejected]:refusing to delete the current branch
- JNI使用
- c语言malloc函数
- nginx 的location详细理解
- 面向对象的概念
- Python3之yeild监听器应用