java--set
来源:互联网 发布:linux自动化部署工具 编辑:程序博客网 时间:2024/06/08 17:24
TreeSet:有序,无重复元素
注意:
有序:要实现Comparable接口, 重复:根据Comparable的返回值为0来判断两个元素是否相同
public class test { public static void main(String args[]) throws Exception { Set<Book> all = new TreeSet<>(); all.add(new Book("Java开发",45.6)); all.add(new Book("Java开发",45.6)); all.add(new Book("JSP开发",45.6)); all.add(new Book("Android开发",89.56)); System.out.println(all); }}class Book implements Comparable<Book>{ private String title; private double price; public Book(String title, double price) { this.title = title; this.price = price; } @Override public int compareTo(Book o) { if(this.price > o.price){ return 1; }else if(this.price < o.price) { return -1; }else{ return this.title.compareTo(o.title); } } @Override public String toString() { return "Book{" + "title='" + title + '\'' + ", price=" + price + '}'; }}
HashSet:无序,不重复
注意:判断不重复的两个步骤
1)取得哈希码:public int hashCode()
先判断对象的哈希码是否相同,依靠哈希码取得一个对象的内容
2)对象比较:public boolean equals(Object obj)
再将对象的属性进行一次的比较
public class test { public static void main(String args[]) throws Exception { Set<Book> all = new HashSet<>(); all.add(new Book("Java开发",45.6)); all.add(new Book("Java开发",45.6)); all.add(new Book("JSP开发",45.6)); all.add(new Book("Android开发",89.56)); System.out.println(all); }}class Book { private String title; private double price; public Book(String title, double price) { this.title = title; this.price = price; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Book book = (Book) o; if (Double.compare(book.price, price) != 0) return false; return title != null ? title.equals(book.title) : book.title == null; } @Override public int hashCode() { long temp = Double.doubleToLongBits(price); return (int) (temp ^ (temp >>> 32)); } @Override public String toString() { return "Book{" + "title='" + title + '\'' + ", price=" + price + '}'; }}
阅读全文
0 0
- java set
- java--Set
- Java Set
- [java] set
- Java Set
- java--set
- java---Set
- java---Set
- Java Set
- java、Set
- java.util.Set翻译
- java set system time
- java.util.Set翻译
- java.util.Set
- JAVA---List,Map,Set
- java mail: set
- java集合Set操作
- Java Set Delete Remove
- leetcode 316. Remove Duplicate Letters
- vue中点击button会刷新页面
- Linux文件I/O概述
- 什么是视图
- leetcode 304. Range Sum Query 2D
- java--set
- Android之屏幕方向|显示方式|Activity重建问题|横竖屏切换不同的布局
- add-apt-repository PPA
- 利用document.implementation.createHTMLDocument创建新的document
- Unity通过UGUI的Slider调整物体颜色
- struts2标签获取parameter,request,session,application中的值
- Thread2(多线程)再接再厉ヾ(◍°∇°◍)ノ゙
- Android启动页解决攻略最终版
- servlet3..0+ 之@webservlet