HashSet

package com.yuzhenc.collection;import java.util.HashSet;/*** @author: yuzhenc* @date: 2022-03-09 20:51:34* @desc: com.yuzhenc.collection* @version: 1.0*/
public class Test12 {public static void main(String[] args) {//HashSet特点:唯一、无序HashSet<String> hashSet = new HashSet<>();System.out.println(hashSet.add("abc"));//trueSystem.out.println(hashSet.add("def"));//trueSystem.out.println(hashSet.add("ghi"));//trueSystem.out.println(hashSet.add("def"));//falseSystem.out.println(hashSet.size());//3System.out.println(hashSet);//[abc, def, ghi]HashSet<Animal> hashSet1 = new HashSet<>();hashSet1.add(new Animal("cat",10));hashSet1.add(new Animal("dog",5));hashSet1.add(new Animal("pig",1));hashSet1.add(new Animal("dog",5));for (Animal animal : hashSet1) {System.out.println(animal);}}
}
class Animal {private String name;private int age;public Animal() {}public Animal(String name, int age) {this.name = name;this.age = age;}@Overridepublic String toString() {return "Animal{" +"name='" + name + '\'' +", age=" + age +'}';}
}

LinkedHashSet

package com.yuzhenc.collection;import java.util.LinkedHashSet;/*** @author: yuzhenc* @date: 2022-03-09 21:16:17* @desc: com.yuzhenc.collection* @version: 1.0*/
public class Test13 {public static void main(String[] args) {//唯一、无序LinkedHashSet<Integer> linkedHashSet = new LinkedHashSet<>();linkedHashSet.add(1);System.out.println(linkedHashSet.add(2));//truelinkedHashSet.add(3);System.out.println(linkedHashSet.add(2));//falseSystem.out.println(linkedHashSet);//[1, 2, 3]}
}

TreeSet

package com.yuzhenc.collection;import java.util.TreeSet;/*** @author: yuzhenc* @date: 2022-03-09 21:20:31* @desc: com.yuzhenc.collection* @version: 1.0*/
public class Test14 {public static void main(String[] args) {//TreeSet底层利用的是内部比较器//逻辑结构:二叉树//物理结构:链式存储//特点:唯一、无序(不按添加的顺序输出)、有序(按升序输出)TreeSet<Integer> treeSet = new TreeSet<>();treeSet.add(45);treeSet.add(24);treeSet.add(38);treeSet.add(96);treeSet.add(11);treeSet.add(24);System.out.println(treeSet);//[11, 24, 38, 45, 96]}
}

内部比较器

package com.yuzhenc.collection;import java.util.TreeSet;/*** @author: yuzhenc* @date: 2022-03-09 21:27:41* @desc: com.yuzhenc.collection* @version: 1.0*/
public class Test15 {public static void main(String[] args) {TreeSet<Cat> treeSet = new TreeSet<>();treeSet.add(new Cat("Lili",18));treeSet.add(new Cat("Ana",19));treeSet.add(new Cat("Amy",20));treeSet.add(new Cat("Lili",18));treeSet.add(new Cat("Lili",19));treeSet.add(new Cat("Lili",17));for (Cat cat : treeSet) {System.out.println(cat);}}
}
class Cat implements Comparable <Cat>{String name;int age;public Cat() {}public Cat(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;}@Overridepublic String toString() {return "Cat{" +"name='" + name + '\'' +", age=" + age +'}';}@Overridepublic int compareTo(Cat o) {return this.getAge()-o.getAge() == 0 ? this.getName().hashCode()-o.getName().hashCode() : this.getAge()-o.getAge();}
}

外部比较器

package com.yuzhenc.collection;import java.util.Comparator;
import java.util.TreeSet;/*** @author: yuzhenc* @date: 2022-03-09 21:40:43* @desc: com.yuzhenc.collection* @version: 1.0*/
public class Test16 {public static void main(String[] args) {Bijiao bijiao = new Bijiao();TreeSet<Dog> treeSet = new TreeSet<>(bijiao);treeSet.add(new Dog("Lili",18));treeSet.add(new Dog("Ana",19));treeSet.add(new Dog("Amy",20));treeSet.add(new Dog("Lili",18));treeSet.add(new Dog("Lili",19));treeSet.add(new Dog("Lili",17));for (Dog dog : treeSet) {System.out.println(dog);}}
}
class Dog {String name;int age;public Dog() {}public Dog(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;}@Overridepublic String toString() {return "Dog{" +"name='" + name + '\'' +", age=" + age +'}';}
}class Bijiao implements Comparator<Dog> {@Overridepublic int compare(Dog o1, Dog o2) {return o1.getName().hashCode()-o2.getName().hashCode()==0 ? o1.getAge()-o2.getAge() : o1.getName().hashCode()-o2.getName().hashCode();}
}

【Java Set接口】相关推荐

  1. java 清空控制台_利用原生库和JNI(Java原生接口)实现H2数据库漏洞利用

    在H2数据库引擎中获取代码执行权限的技术早已是众所周知,但有个要求就是H2能够动态编译Java代码.而本文将向大家展示以前没有公开过的利用H2的方法,并且无需使用Java编译器,即通过原生库和JNI( ...

  2. java多线程查询_利用Java函数式接口处理多线程查询

    Java函数式接口 有且只有一个抽象方法的接口被称为函数式接口. @FunctionalInterface注解: 该注解可用于一个接口的定义上, 一旦使用该注解来定义接口, 编译器将会强制检查该接口是 ...

  3. java滥用接口_吐槽一下项目中的代码坏味道:滥用java常量

    我们的项目中是否充斥着类似以下的代码呢?定义一个专门存放常量的java类(接口),非常多其它类依赖该常量类. public interface IConstant { int ZERO = 0; St ...

  4. java接口与类相同不同_浅谈java的接口和C++虚类的相同和不同之处

    C++虚类相当于java中的抽象类,与接口的不同之处是: 1.一个子类只能继承一个抽象类(虚类),但能实现多个接口 2.一个抽象类可以有构造方法,接口没有构造方法 3.一个抽象类中的方法不一定是抽象方 ...

  5. java类接口的区别_【Java基础】java接口和类的区别-瑶瑶吖的回答

    基本语法区别 Java中接口和抽象类的定义语法分别为interface与abstract关键字. 抽象类:在Java中被abstract关键字修饰的类称为抽象类,被abstract关键字修饰的方法称为 ...

  6. java 实现接口后重写方法报错

    java 实现接口后重写方法报错 java 实现接口后重写方法报错 The method contextDestroyed(ServletContextEvent) of type InitListe ...

  7. Java 利用接口实现回调

    在 Java 支持方法指针之前,Java 接口不能提供一种实现回调的好方法.如果您习惯于传递在事件驱动编程模型中调用的函数指针,则您会喜欢本技巧.  熟悉 MS-Windows 和 X Window ...

  8. java一个接口执行结束释放内存_java的灵魂--JVM虚拟机

    JVM是运行在操作系统之上的,它与硬件没有直接的交互 JVM体系结构 1.类加载器 负责加载class文件,class文件在文件开头有特定的文件标示, 并且ClassLoader只负责class文件的 ...

  9. java private 接口_java接口中 定义 private 私有方法

    在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法.只允许我们定义public访问权限的方法.抽象方法或静态方法.但是从Java 9 开 ...

  10. 《Java程序设计》实验报告——Java的接口与继承

    浙江理工大学 <Java程序设计>  实验报告  20 19-20 20学年第 1学期      学  院 信息学院 班  级 计算机科学与技术18(3) 姓  名 申屠志刚 学  号 2 ...

最新文章

  1. 罗斯霍曼理工学院计算机毕业生,全美最强STEM大学,了解一下?
  2. 日志中台不重不丢实现浅谈
  3. 使用PXE+NFS EFI引导安装RHEL6/7以及Kickstart安装
  4. 杭电acm2059-龟兔赛跑 java
  5. mongodb mongoose 常用操作符号 整理
  6. 断言NSAssert的使用
  7. 网站服务器怎么用手机登录不了怎么办,怎么打不开服务器列表了?
  8. 铁子们,2019博客之星投票活动开始了!帮我投个票呗
  9. CYQ.Data 正式支持 DotNET Core 版本发布
  10. C#结构体中的只写属性
  11. 20191114每日一句
  12. 个人网页制作 大学生个人网页设计 个人网站模板 简单静态HTML个人网页作品 大学生毕设网页设计源码HTML
  13. Excel如何实现随机抽取
  14. 小米手机隐私相册在哪?将你的照片锁进“保险柜”
  15. ae渲染出现错误是什么问题_怎样彻底检查根治AE导出失败,渲染影片出错问题...
  16. java实现计算器_java实现计算器功能
  17. C# vb .net实现相机视图效果滤镜
  18. react服务端渲染技术
  19. 20个大数据可视化大屏模板(评论区附源码)
  20. 操作系统文件管理之FCB

热门文章

  1. 连接查询(MySQL)
  2. 科技爱好者周刊:第 87 期
  3. 如何优雅的在 Word 中插入代码,PlanetB 的完美替代方案
  4. 小白都能看懂的实战教程 手把手教你Python Web全栈开发(DAY 3)
  5. 数字信号处理(一)绪论
  6. 台式机装苹果系统_iOS系统如何安装外来App?教你一键设置!苹果手机怎么装第三方软件?...
  7. MySQL数据库中插入图片
  8. spring hateoas 1.0改动
  9. 常用SQL语句(一)
  10. 【SpringMVC】@RequestMapping和@GetMapping的区别