集合——HashSet接口
2021/12/6 23:18:01
本文主要是介绍集合——HashSet接口,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
set接口简述:元素无序 且 不允许有重复元素。Set接口和List接口继承自Collection接口。
向HashSet存入对象时,对象一般会重写hashCode()和equals()方法。
代码演示:
此时存储并输出了两个一样的。因为没有重写hashCold()和equal()方法。
import java.util.HashSet; import java.util.Iterator; public class HashSetDemo { public static void main(String[] args) { //创建HashSet对象 HashSet hs=new HashSet(); //给集合中添加自定义对象. hs.add(new Student("李白",21)); hs.add(new Student("杜甫",19)); hs.add(new Student("张飞",22)); hs.add(new Student("李白",21));//存储了两个“李白” //取出集合中的每个元素 Iterator it=hs.iterator(); while (it.hasNext()){ Student s=(Student)it.next(); System.out.println(s); }
学生类: public class Student {
private String name; private int age; public Student(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override //重写String方法,利于输出完整的String量。ALT+insert键选择to String public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + '}'; //此时从上到这,没有重写hashCold()和equal()方法。所以HashSet集合可以存储一样的元素 此时输出:
Student{name='李白', age=21}
Student{name='张飞', age=22}
Student{name='杜甫', age=19}
Student{name='李白', age=21} //此时存储并输出了两个一样的。元素重复了
///////////////////////////////////////////////////////////////////////////////////////////
@Override //ALT+insert键选择 hashCold()和equal(),直接默认下一步就行了。
public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Student student = (Student) o; return age == student.age && Objects.equals(name, student.name); } @Override public int hashCode() { return Objects.hash(name, age); } //此时到这,以经重写hashCold()和equal()方法。
此时输出:
E:\Files\java11\bin\java.exe "-javaagent:E:\Files\Idea\IntelliJ IDEA 2018.2.2\lib\idea_rt.jar=57273:E:\Files\Idea\IntelliJ IDEA 2018.2.2\bin" -Dfile.encoding=UTF-8 -classpath E:\Files\Idea\javacold\out\production\demo01 com.libai.www.HashSetDemo
Student{name='李白', age=21}
Student{name='杜甫', age=19}
Student{name='张飞', age=22} //李白这个元素此时不能重复
Process finished with exit code 0
} }
这篇关于集合——HashSet接口的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)