当前位置: 代码迷 >> 综合 >> Set接口(HashSet,TreeSet)
  详细解决方案

Set接口(HashSet,TreeSet)

热度:58   发布时间:2024-01-25 02:32:58.0

HashSet

不能重复,没有顺序,本质上就是HashMap的key,对于这个HashSet大家可以练习一下如下的代码,通过运行程序,查看控制台内容来进一步了解。

import java.util.HashSet;
import java.util.Set;/** * @author Hercules* @version 创建时间:2020年1月15日 下午2:11:43 * 学习类*/
public class SetPratice {public static void main(String[] args) {Set<String> sets = new HashSet<String>();sets.add("aa");sets.add("aa1");sets.add("aa2");sets.add("aa3");sets.add("aa");     //不允许重复,所以重新添加的"aa"加不进去sets.contains("aa");//判断是否存在sets.add(null);     //可以添加空值进去for(String s : sets) {System.out.println(s);}System.out.println("********");//用*号分隔开sets.remove("aa");  //删除元素for(String s : sets) {System.out.println(s);}}
}

TreeSet

和HashSet一样实现了Set接口,使用方法和HashSet一样,可以排序,实现排序同样有两种方法,这里我就不很详细的写了,因为在我这篇博文中写的比较详细了链接地址如下:点击此处跳转
下面我就简单介绍下实现方法
1:key的类型实现, java.lang.Comparable < Employee > 接口 实现compareTo方法,根据返回的是正整数0负整数进行排序。
这里还是把代码粘贴出来:

 public class Employee implements Comparable<Employee>{private int eNo;private String name;private double salary;public Employee() {super();}public Employee(int eNo, String name, double salary) {super();this.eNo = eNo;this.name = name;this.salary = salary;}public int geteNo() {return eNo;}public void seteNo(int eNo) {this.eNo = eNo;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getSalary() {return salary;}public void setSalary(double salary) {this.salary = salary;}@Overridepublic String toString() {return String.format("Employee [eNo=" + eNo + ", name=" + name + ", salary=%6.2f]", salary);}@Overridepublic int compareTo(Employee o) {return getSalary() > o.getSalary() ? 1 : getSalary()==o.getSalary() ? 0 : -1;}}

2、自己实现一个java.util.Comparator实现里面的compare方法根据返回的是正整数0负整数进行排序。

import java.util.Comparator;public class MyCompare implements Comparator<Employee>{@Overridepublic int compare(Employee o1, Employee o2) {return o1.getSalary() > o2.getSalary() ? 1 : o1.getSalary()==o2.getSalary() ? 0 : -1;}}使用时传入比较对象
private Set<Employee> employees = new TreeSet<Employee>(new MyCompare());
  相关解决方案