1. 程式人生 > >Collection中的接口:List、Set、SortedSet、Queue、第二篇

Collection中的接口:List、Set、SortedSet、Queue、第二篇

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、第二篇