java基础17-Set集合
2021/9/15 22:05:25
本文主要是介绍java基础17-Set集合,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Set集合
Set集合里面的方法和Collection里面的方法一样,没有什么特有的方法,主要学什么?学Set集合的子类如何保证元素的唯一(如何保证元素不重复) HashSet实现了Set接口,有哈希表(实际是一个HashMap实例)支持,它不保证set的迭代顺序,特别是它不保证该顺序恒久不变,此类允许使用null元素 Set集合的特点:无索引,不可以重复,无序(存取不一致)
问题:HashSet集合存储自定义对象,HashSet不能保证元素的唯一,new的对象每一个都有自己的地址值
我们认为同姓名同年龄是同一个人,如何做?Person类里面重写equals方法,但是还是全部打印了,为啥呢?equals方法没有被执行
1 package com.test.Set; 2 3 import com.test.bean.Person; 4 import java.util.HashSet; 5 6 7 public class Demo1702_HashSet { 8 9 //HashSet存储自定义对象保证元素唯一性 10 //为什么要存储自定义对象?因为你存储java给我们提供的已有的对象的话,我们不知道它重写了哪些方法来决定它保证元素唯一 11 //现在我们存储的是自定义的对象,自定义对象是我们自己写的,什么方法都没有重写,看看有什么特点? 12 //一个类有什么特点,是由她的功能决定的,HashSet保证元素的唯一是因为里面有个功能可以保证元素唯一 13 14 public static void main(String[] args) { 15 16 HashSet<Person> hs = new HashSet<Person>();//创建HashSet对象 17 hs.add(new Person("张三",24)); 18 hs.add(new Person("张三",24)); 19 hs.add(new Person("李四",24)); 20 hs.add(new Person("李四",24)); 21 hs.add(new Person("李四",24)); 22 hs.add(new Person("李四",24)); 23 24 //System.out.println(hs.size());//打印结果是6 25 System.out.println(hs); 26 //new Person() new的对象每一个都有自己的地址值,所以都打印了 27 } 28 }
1,Person类重写了toString方法
1 package com.test.bean; 2 3 4 public class Person { 5 6 private String name ; 7 private int age; 8 9 public Person() { 10 } 11 12 public Person(String name, int age) { 13 this.name = name; 14 this.age = age; 15 } 16 17 public String getName() { 18 return name; 19 } 20 21 public void setName(String name) { 22 this.name = name; 23 } 24 25 public int getAge() { 26 return age; 27 } 28 29 public void setAge(int age) { 30 this.age = age; 31 } 32 33 @Override 34 public String toString() { 35 return "Person{" + 36 "name='" + name + '\'' + 37 ", age=" + age + 38 '}'; 39 } 40 }
Person类里面重写equals方法
这篇关于java基础17-Set集合的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 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题)