欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java基礎必學TreeSet集合

 更新時間:2022年04月01日 10:22:11   作者:再美不及姑娘你  
這篇文章主要介紹了Java必學基礎TreeSet集合,TreeSet集合實現(xiàn)了SortedSet接口,?可以對集合中元素進行自然排序,?要求集合中的元素必須是可比較的。下文詳細介紹需要的朋友可以參考一下

一、特點

1.元素有序,這里的順序不是指的存儲和取出的順序,而是按照一定規(guī)則進行排序,具體排序方法要看構造方法

TreeSet():無參構造,根據(jù)元素的自然順序排序也就是從小到大的排序方式進行排序

TreeSet(Comparator comparator):帶參構造,根據(jù)指定的比較器進行排序

2.沒有帶索引的方法,所以不能使用for循環(huán),可以使用增強for循環(huán)或者迭代器

3.由于是Set集合,所以是不包含重復元素的集合

使用無參構造進行存儲數(shù)據(jù)并遍歷練習:

public class TreeSetDemo {
 ?  public static void main(String[] args) {
 ? ? ?  //創(chuàng)建對象
 ? ? ?  TreeSet<Integer>ts=new TreeSet<Integer>();//注意:泛型中引用類型要用它的包裝類類型
 ? ? ?  //添加數(shù)據(jù)
 ? ? ?  ts.add(10);//自動裝箱實現(xiàn)
 ? ? ?  ts.add(8);
 ? ? ?  ts.add(7);
 ? ? ?  ts.add(5);
 ? ? ?  ts.add(10);//由于是Set集合不包含重復元素,所以該元素不顯示
 ? ? ?  //遍歷方法一 增強for
 ? ? ?  for (Integer i:ts){
 ? ? ? ? ?  System.out.println(i);
 ? ? ?  }
 ? ? ?  System.out.println("--------------------------------");
 ? ? ?  //遍歷方法二 迭代器
 ? ? ?  Iterator<Integer>it =ts.iterator();
 ? ? ?  while(it.hasNext()){
 ? ? ? ? ?  System.out.println(it.next());
 ? ? ?  }
 ?  }
}

二,補充

TreeSet集合實現(xiàn)了SortedSet接口, 可以對集合中元素進行自然排序, 要求集合中的元素必須是可比較的。

package com.wkcto.chapter05.set;

import java.util.Comparator;
import java.util.TreeSet;

/**
 * TreeSet集合
 * 		可以對元素進行自然排序, 要求元素必須是可比較的
 * 			1)創(chuàng)建TreeSet集合時,通過構造方法指定Comparator比較器
 * 			2)如果沒有指定Comparator比較器, 要求元素的類必須實現(xiàn)Comparable接口
 * @author 蛙課網(wǎng)
 *
 */
public class Test03 {

	public static void main(String[] args) {
		//1) 創(chuàng)建TreeSet集合,存儲Person對象, 在構造方法中指定Comparator比較器,按姓名升序排序
		TreeSet<Person> treeSet = new TreeSet<>(new Comparator<Person>() {
			//在匿名內部類中重寫接口的抽象方法
			@Override
			public int compare(Person o1, Person o2) {
				//指定一個比較規(guī)則
				return o1.name.compareTo(o2.name);   //姓名升序
			}
		});
		
		//2)添加元素
		treeSet.add(new Person("lisi", 18));
		treeSet.add(new Person("feifei", 28));
		treeSet.add(new Person("yong", 35));
		treeSet.add(new Person("bin", 36));
		treeSet.add(new Person("zhang", 33));
		
		//3)直接打印
		System.out.println( treeSet );
		
		//4) 根據(jù)已有TreeSet創(chuàng)建新的TreeSet集合
		TreeSet<Person> treeSet22 = new TreeSet<>(treeSet);
		System.out.println( treeSet22 );
		
		//5) 使用TreeSet的無參構造, 沒有指定Comparator比較器, 要求Person類實現(xiàn)Comparable接口
		TreeSet<Person> treeSet33 = new TreeSet<>();
		treeSet33.addAll(treeSet);		
		System.out.println( treeSet33);
	}

}

TreeSet集合底層是TreeMap,向TreeSet集合添加元素,實際上是把該元素作為鍵添加到了底層TreeMap中,TreeSet集合實際上就是底層TreeMap的鍵的集合。

package com.wkcto.chapter05.set;

import java.util.Comparator;
import java.util.TreeSet;
/**
 * 注意:
 * 		在TreeSet集合中, 是根據(jù)Comparator/Comparable的比較結果是否為0來判斷是否為同一個對象
 * 		如果Comparator的compare()方法/Comparable的compareTo()方法的返回值為0 就認為是同一個對象
 * @author 蛙課網(wǎng)
 *
 */
public class Test04 {

	public static void main(String[] args) {
		//創(chuàng)建TreeSet集合,存儲Person對象, 通過構造方法指定Comparator比較器,按年齡降序排序
		TreeSet<Person> treeSet = new TreeSet<>(new Comparator<Person>() {
			@Override
			public int compare(Person o1, Person o2) {
				return o2.age - o1.age;
			}
		});
		
		//當前treeSet是根據(jù)年齡比較Person大小的, 在添加Person對象時, 如果年齡相同就認為是同一個對象
		treeSet.add(new Person("lisi", 18));
		treeSet.add(new Person("feifei", 18));
		treeSet.add(new Person("zhang", 18));
		treeSet.add(new Person("yong", 18));
		
		System.out.println( treeSet.size() ); 		// 1
		System.out.println( treeSet );
		System.out.println( treeSet.contains( new Person("wang", 18)));   //true
	}

}

 到此這篇關于Java必學基礎TreeSet集合的文章就介紹到這了,更多相關Java TreeSet集合內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • mybatis教程之延遲加載詳解

    mybatis教程之延遲加載詳解

    本篇文章主要介紹了mybatis教程之延遲加載詳解。詳細介紹了延遲加載的意義和用法實現(xiàn),有興趣的可以了解一下
    2017-05-05
  • java讀取文件里面部分漢字內容亂碼的解決方案

    java讀取文件里面部分漢字內容亂碼的解決方案

    這篇文章主要介紹了java讀取文件里面部分漢字內容亂碼的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • ChatGPT-4.0未來已來 你來不來

    ChatGPT-4.0未來已來 你來不來

    最近聽說了一個非常火的技術ChatGPT4.0,今天這篇文章就給大家介紹一下ChatGPT究竟是什么東東,不得不說ChatGPT是真的強,下面就讓我們一起了解究竟什么是ChatGPT吧
    2023-03-03
  • IDEA中編寫并運行shell腳本的實現(xiàn)

    IDEA中編寫并運行shell腳本的實現(xiàn)

    這篇文章主要介紹了IDEA中編寫并運行shell腳本的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • java瀏覽器文件打包下載過程解析

    java瀏覽器文件打包下載過程解析

    這篇文章主要介紹了java瀏覽器文件打包下載過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • Tomcat能起開,但是訪問不進8080首頁的問題解決方案

    Tomcat能起開,但是訪問不進8080首頁的問題解決方案

    這篇文章主要介紹了Tomcat能起開,但是訪問不進8080首頁的問題解決方案的相關資料,需要的朋友可以參考下
    2016-10-10
  • spring boot 本地圖片不能加載(圖片路徑)的問題及解決方法

    spring boot 本地圖片不能加載(圖片路徑)的問題及解決方法

    這篇文章主要介紹了spring boot 本地圖片不能加載(圖片路徑)的問題,解決的辦法其實很簡單,只要寫一個配置文件,也就是圖片位置的轉化器,原理是虛擬一個在服務器上的文件夾,與本地圖片的位置進行匹配。需要的朋友可以參考下
    2018-04-04
  • java正則表達式提取數(shù)字的方法實例

    java正則表達式提取數(shù)字的方法實例

    這篇文章主要介紹了java正則表達式提取數(shù)字的方法,還有去除字符串數(shù)字的方法,大家參考使用吧
    2013-12-12
  • 基于Java生成圖片驗證碼的方法解析

    基于Java生成圖片驗證碼的方法解析

    這篇文章主要來為大家詳細介紹一下基于Java生成圖片驗證碼的具體方法,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以參考一下
    2023-02-02
  • spring boot前后端傳參的實現(xiàn)

    spring boot前后端傳參的實現(xiàn)

    這篇文章主要介紹了spring boot前后端傳參的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01

最新評論