集合——Set 逃离我推掉我的手 2023-01-21 05:30 133阅读 0赞 #### Set接口 #### 1.set接口的主要实现类有HashSet和 TreeSet 2.HashSet是基于哈希表实现的,数据是无序的, HashSet元素可以是null,但只能有一个null 3.TreeSet是基于二又树实现的,可以实现数据的自动排序,确保集合元素处于排序状态,不允许放 4.HashSet的性能优于TreeSet,一般情况下建议使用 HashSet,如果需要使用排序功能建议使用TreeSet ### 代码实践: ### **对象类** import java.util.Objects; //属性类 public class Cat { private String name; private int month;//年龄 private String specise;//品种 //构造方法 public Cat(String name, int month, String specise) { this.name = name; this.month = month; this.specise = specise; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getMonth() { return month; } public void setMonth(int month) { this.month = month; } public String getSpecise() { return specise; } public void setSpecise(String specise) { this.specise = specise; } @Override public String toString() { return "Cat{" + "名字='" + name + '\'' + ", 年龄=" + month + ", 品种='" + specise + '\'' + '}'; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Cat cat = (Cat) o; return month == cat.month && Objects.equals(name, cat.name) && Objects.equals(specise, cat.specise); } @Override public int hashCode() { return Objects.hash(name, month, specise); } } **实现类** import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class CatText { public static void main(String[] args) { //定义宠物猫信息 Cat hanghang = new Cat("黄黄",12,"英国短毛猫"); Cat huahua = new Cat("花花",3,"白猫"); //把宠物猫信息放入HashSet类里面 //加入泛型就不用进行强制类型转换 Set<Cat> set = new HashSet<Cat>(); set.add(hanghang); set.add(huahua); //利用迭代器对集合进行遍历,输出猫的信息 Iterator<Cat> it = set.iterator(); while (it.hasNext()){ System.out.println(it.next()); } //添加一个属性相同的猫 //无法添加 System.out.println("************"); System.out.println("添加一个属性相同的猫猫"); Cat huahua01 = new Cat("huahua",3,"白猫"); set.add(huahua); it = set.iterator(); while (it.hasNext()){ System.out.println(it.next()); } //插入一个猫的信息 System.out.println("**********"); System.out.println("插入一个猫的信息"); Cat huahua02 = new Cat("花花二代",2,"三花猫"); set.add(huahua02); it=set.iterator(); while (it.hasNext()){ System.out.println(it.next()); } //查询一个猫的信息, //第一种方法,利用对象名去查找 System.out.println("************"); System.out.println("利用对象查找一个猫的信息:"); if(set.contains(huahua)){ System.out.println("花花找到了"); System.out.println(huahua); }else { System.out.println("没有找到花花这个猫"); } //利用名字取查找信息 //并输出这个猫的信息 //利用迭代器进行遍历集合 System.out.println("***********"); System.out.println("利用猫名字去查找信息:"); boolean flag = false; Cat c=null; it = set.iterator(); while (it.hasNext()){ //这里需要强制类型转换 c = it.next(); if(c.getName().equals("花花")){ System.out.println("花花找到了"); flag = true; break; } } //易错点 //这里的输出语句要写在while外面,因为执行break后 就不会输出break后面的语句 if(flag){ System.out.println(c); }else { System.out.println("没有找到花花"); } //删除花花二代 并输出信息 //利用增强for循环 //增强for循环的格式: //for(数据类型 变量名 :遍历的目标){ //数据类型 变量名:声明一个变量用来接收遍历目标遍历后的元素 /*for(Cat cat:set){ if(cat.getName().equals("花花")){ //此操作只能删除最后一个元素,否者会进行报错,因为Set集合不允许一边遍历一边删除 set.remove(cat);break; //需添加break结束循环 } }*/ //把年龄小于5的猫猫全部删除 System.out.println("***************"); System.out.println("删除年龄小于5的猫"); Set set01 = new HashSet(); for(Cat cat:set){ if(cat.getMonth()<5){ set01.add(cat); } } set.removeAll(set01); for(Cat cat:set){ System.out.println(cat); } //删除所有猫的信息 System.out.println("*************"); boolean flag1 = set.removeAll(set); if(flag1){ System.out.println("猫猫全部删除了"); }else { System.out.println("猫还在"); } } }
相关 集合set 35个问题测试你对Python集合的认识 如何通过掌握集合的基本原理来压制算法问题 图片来自Pexels的Andrea Piacquadio 在我追求掌握面试算法的过程中,我 ╰半夏微凉°/ 2024年04月06日 13:19/ 0 赞/ 78 阅读
相关 set集合 目录 1,set集合的特点: 1.1,set集合添加的数据不可重复 1.2 hashset无序 Treeset有序 1.2.1set集合的遍历方法 1.2.2Tree 我就是我/ 2024年03月16日 18:50/ 0 赞/ 56 阅读
相关 集合——Set Set接口 1.set接口的主要实现类有HashSet和 TreeSet 2.HashSet是基于哈希表实现的,数据是无序的, HashSet元素可以是null,但只 逃离我推掉我的手/ 2023年01月21日 05:30/ 0 赞/ 134 阅读
相关 Set集合 Scala `Set`是相同类型成对的不同元素的集合。换句话说,一个集合是不包含重复元素的集合。 集合有两种:不可变(`immutable`)和可变(`mutable`)。可变 短命女/ 2022年06月07日 11:16/ 0 赞/ 213 阅读
相关 Set集合 简介 > 无序,不可重复的集合 HashSet ①、HashSet:不能保证元素的顺序;不可重复;不是线程安全的;集合元素可以为 NULL; ②、对于 Has 柔光的暖阳◎/ 2022年05月28日 23:40/ 0 赞/ 199 阅读
相关 集合 set 集合 set :去重复,做操作 .add 是增加一个整体,如add('op')是加'op'.update 是增加一个一个的字符是加 o和p in ,no 超、凢脫俗/ 2022年02月23日 10:45/ 0 赞/ 275 阅读
相关 set集合 概述 Set接口继承Collection Set接口常用实现类 1. HashSet 实现了 Set 接口 “它不保证 set 的迭代顺序;特别是它不保证 Bertha 。/ 2022年01月22日 08:39/ 0 赞/ 285 阅读
相关 集合 SET 集合 SET 定义: 只有键没有值的字典,保留无序的元素,没有索引。集合的元素不可变。 创建: 1.set\_1 = set(seq) 2.set\_2 太过爱你忘了你带给我的痛/ 2021年12月05日 05:13/ 0 赞/ 365 阅读
相关 Set(集合) ''' 集合:可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复。 {} ''' set1 = set({1, ゝ一世哀愁。/ 2021年11月17日 22:38/ 0 赞/ 361 阅读
相关 集合Set 集合的一个关键的特点就是不能存放重复的元素,二分搜索树是一个非常好的实现集合的底层数据结构 1、二分搜索树实现集合: ![在这里插入图片描述][watermark_ty 川长思鸟来/ 2021年09月23日 22:14/ 0 赞/ 396 阅读
还没有评论,来说两句吧...