Collection中的接口:List、Set、SortedSet、Queue、第二篇
阿新 • • 發佈:2019-05-11
queue subset else private amp add urn sortedset www.
Set接口的常用子類:
1.HashSet:裏面不能存放重復的元素,而且是采用散列的存放方法,沒有順序
package com.set; import java.util.HashSet; import java.util.Set; import java.util.TreeSet; public class setdemo01 { public static void main(String[] args) { Set<String> allSet = new HashSet<String>();//HashSet對輸入的數據進行無序存放allSet.add("A"); allSet.add("B"); allSet.add("C"); allSet.add("C"); allSet.add("C"); allSet.add("D"); allSet.add("E"); System.out.println(allSet); } }
[D, E, A, B, C]
2.TreeSet:裏面不能存放重復的元素,但是采用有序的存儲方法
package com.set; import java.util.Set; import java.util.TreeSet; public class setdemo01 { public static void main(String[] args) { Set<String> allSet = new TreeSet<String>();//TreeSet對輸入的數據進行有序存放 allSet.add("B"); allSet.add("E"); allSet.add("C"); allSet.add("C"); allSet.add("A"); allSet.add("C"); allSet.add("D"); System.out.println(allSet); } }
[A, B, C, D, E]
自定義類排序,指定排序規則(重復元素不能加入):
package com.set; import java.util.Set; import java.util.TreeSet; //自定義類排序,指定排序規則 class Person implements Comparable<Person>{ private String name; private int age; public Person(String name,int age){ this.name=name; this.age=age; } public String toString(){ //覆寫ToString()方法 return "姓名:"+this.name+";"+"年齡:"+this.age; } @Override public int compareTo(Person pp) { //覆寫compareTo()方法,指定排序規則 if(this.age>pp.age){ //通過年齡排序 return 1; }else if(this.age<pp.age){ return -1; }else{ return 0; } } } public class SetDemo02 { public static void main(String[] args) { Set<Person> allSet = new TreeSet<Person>(); allSet.add(new Person("666",30)); allSet.add(new Person("222",45)); allSet.add(new Person("555",25)); System.out.println(allSet); } }
[姓名:555;年齡:25, 姓名:666;年齡:30, 姓名:222;年齡:45]
去掉重復元素:
package com.set; import java.util.HashSet; import java.util.Set; class Persons{ private String name; private int age; public Persons(String name,int age){ this.name=name; this.age=age; } public boolean equals(Object obj){ if(this==obj){ return true; } if(!(obj instanceof Persons)){ return false; } Persons p=(Persons) obj; if(this.name.equals(p.name)&&this.age==p.age){ return true; }else{ return false; } } public int hashCode(){ return this.name.hashCode()*this.age; } public String toString(){ //覆寫ToString()方法 return "姓名:"+this.name+";"+"年齡:"+this.age; } } public class SetDemo03 { public static void main(String[] args) { Set<Persons> allSet = new HashSet<Persons>(); allSet.add(new Persons("666",30)); allSet.add(new Persons("222",45)); allSet.add(new Persons("555",25)); allSet.add(new Persons("444",25)); allSet.add(new Persons("333",25)); allSet.add(new Persons("111",45)); System.out.println(allSet); } }
[姓名:111;年齡:45, 姓名:444;年齡:25, 姓名:333;年齡:25, 姓名:555;年齡:25, 姓名:222;年齡:45, 姓名:666;年齡:30]
SortedSet接口:
package com.set; import java.util.SortedSet; import java.util.TreeSet; public class SetDemo04 { public static void main(String[] args) { SortedSet<String> allSet = new TreeSet<String>(); allSet.add("A"); allSet.add("B"); allSet.add("C"); allSet.add("C"); allSet.add("C"); allSet.add("D"); allSet.add("E"); System.out.println("第一個元素:"+allSet.first()); System.out.println("最後一個元素:"+allSet.last()); System.out.println("從開始到指定元素的集合:"+allSet.headSet("C")); System.out.println("從指定元素到最後:"+allSet.tailSet("C")); System.out.println("返回指定對象間的元素:"+allSet.subSet("B","D")); } }
第一個元素:A
最後一個元素:E
從開始到指定元素的集合:[A, B]
從指定元素到最後:[C, D, E]
返回指定對象間的元素:[B, C]
認真看過此篇的小夥伴,如果對你有收獲,請點擊旁邊的小手推薦一下,如果有誤,歡迎指正,謝謝!
版權聲明:此篇為本人原創,轉載請標明出處 https://www.cnblogs.com/YQian/p/10847304.html
我的博客園地址:https://www.cnblogs.com/YQian/
Collection中的接口:List、Set、SortedSet、Queue、第二篇