Java——集合(TreeSet)

package com.wsq.set;        //這里進行調用Person()方法,要進行導包
import java.util.TreeSet;
import com.wsq.bean.Person;
public class Demo3_TreeSet {
/*** TreeSet集合是用來對元素進行排序的,同樣它也可以保證元素的唯一* 當compareTo()方法返回0的時候,只有一個元素* 當compareTo()方法返回正數的時候,怎么存,就怎么取* 當compareTo()方法返回負數的時候,集合會倒序存儲* */public static void main(String[] args) {
//      demo1();
//      demo2();
//      demo3();
//      demo4();  }private static void demo4() {TreeSet<Person> yy = new TreeSet<>();yy.add(new Person("zhangshan",23));yy.add(new Person("lisi",13));yy.add(new Person("wangwu",33));yy.add(new Person("zhaoliu",43));yy.add(new Person("aaaa",53));System.out.println(yy);
}private static void demo3() {TreeSet<Person> wsq = new TreeSet<>();wsq.add(new Person("李四",13));wsq.add(new Person("張三",23));wsq.add(new Person("王五",43));wsq.add(new Person("趙六",33));System.out.println('張' + 0);System.out.println('李' + 0);System.out.println('王' + 0);System.out.println('趙' + 0);System.out.println(wsq);
}private static void demo2() {TreeSet<Person> wsq = new TreeSet<>();/*** TreeSet底層是一個二叉樹:兩個叉,小的存儲在左邊(返回負數),大的存儲在右邊(返回正數),相等就不存(返回0);* CompareTo()方法,在TreeSet集合如何存儲元素,取決于CompareTo()方法的返回值* * 1,第一次返回0,集合中只有一個元素* 2,第二次返回-1(負數),集合會將存儲的元素倒序* 3,第三次返回1(正數),集合會怎么存。怎么取*  */wsq.add(new Person("張三",23));wsq.add(new Person("李四",13));wsq.add(new Person("周七",13));wsq.add(new Person("王五",43));wsq.add(new Person("趙六",33));System.out.println(wsq);
}private static void demo1() {                       // TreeSet集合是用來對元素進行排序的,同樣它也可以保證元素的唯一,即系統會自動按順序排序TreeSet<Integer> yy = new TreeSet<>();yy.add(3);yy.add(1);yy.add(1);yy.add(2);yy.add(2);yy.add(3);yy.add(3);System.out.println(yy);
}}
package com.wsq.bean;public class Person implements Comparable<Person>{//實現接口之后,要重寫Comparable里面的CompareTo(Person o)這個抽象方法private String name;private int age;public Person() {super();}public Person(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Person [name=" + name + ", age=" + age + "]";}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Person other = (Person) obj;if (age != other.age)return false;if (name == null) {if (other.name != null)return false;} else if (!name.equals(other.name))return false;return true;}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + age;result = prime * result + ((name == null) ? 0 : name.hashCode());return result;}/*public int compareTo(Person o) {          //當CompareTo()方法返回0的時候,集合中只有一個元素return 0;}*//*public int compareTo(Person o) {          //當CompareTo()方法返回正數的時候,集合怎么存,就怎么取return 1;}*//*public int compareTo(Person o) {          //當CompareTo()方法返回負數的時候,集合會倒序存儲return -1;}*//*public int compareTo(Person o) {return this.age - o.age;                           //年齡是比較的唯一條件,若年齡相同但姓名不同,那么只會存儲第一個年齡的人的信息}*//*public int compareTo(Person o) {int num= this.age - o.age;                                      //年齡比較的是主要條件return num == 0 ? this.name.compareTo(o.name) : num;            //姓名是比較的次要條件    }*//*@Overridepublic int compareTo(Person o) {        //按照姓名在字典中的次序排序int  num = this.name.compareTo(o.name);     //姓名是主要條件   return num ==0 ? this.age - o.age : num;    //年齡是次要條件}*/public int compareTo(Person o){int length = this.name.length() - o.name.length();              //比較姓名長度為主要條件int num = length == 0 ? this.name.compareTo(o.name) : length;   //比較姓名內容為次要條件return num == 0 ? this.age - o.age : num;                       //比較年齡也為次要條件     }
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/380036.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/380036.shtml
英文地址,請注明出處:http://en.pswp.cn/news/380036.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

setmonth_日期setMonth()方法以及JavaScript中的示例

setmonthJavaScript日期setMonth()方法 (JavaScript Date setMonth() method) setMonth() method is a Date class method, it is used to set the month to the Date object with a valid month value (between 0 to 11. 0 for January, 1 for February and so on). setMonth(…

LEA與XCHG

LEA 格式&#xff1a; LEA 通用寄存器 內存地址功能&#xff1a;取地址命令 將內存地址賦值給寄存器 lea eax,dword ptr ds:[ecx0x16]dword 雙字 就是四個字節ptr pointer縮寫 即指針ds 數據段版寄存器[]里的數據是一個地址值&#xff0c;這個地址指向一個雙字型數據 將dwo…

分域名優化的時候要考慮備選IP的問題

我們在需要下載很多內容的時候&#xff0c;很容易想到做分域名的并發下載&#xff0c;給原來的服務器多分幾個域名&#xff0c;因為分不同的域名可能可以在瀏覽器中分到更多的下載進程&#xff0c;提高下載速度。 但是在做網絡應用的時候&#xff0c;我們的一個域名下面有的時候…

面試題-ASP 與 ASP.Net的區別?

比較簡潔的回答&#xff1a; 1.開發語言不同&#xff0c;ASP局限于用腳本語言來開發&#xff0c;而ASP.Net可以使用C#,VB.C等來開發。 2.運行機制不同&#xff0c;ASP是解釋運行的&#xff0c;執行效率較低。ASP.Net是編譯性的編程框架。 3.開發方式不同&#xff0c;ASP里前臺H…

Java——集合(輸入5個學生的信息按總分高低排序)

題目要求&#xff1a; 鍵盤錄入5個學生信息&#xff08;姓名&#xff0c;語文成績&#xff0c;數學成績&#xff0c;英語成績&#xff09;&#xff0c;按照總分從高到低輸出到控制臺 分析&#xff1a; 1&#xff0c;定義一個學生類 * 成員變量&#xff1a;姓名&#xff0c;…

日期setHours()方法以及JavaScript中的示例

JavaScript Date setHours()方法 (JavaScript Date setHours() method) setHours() method is a Date class method, it is used to set the hour to the Date object with a valid hour value (between 00 to 23). setHours()方法是Date類方法&#xff0c;用于將小時設置為具有…

Google SSL zz

// Google SSL// Modified from SSL Certificates Pro//z 2011-12-29 8:59 AM is2120csdn : reader,calendar// UserScript// name Google SSL// namespace http://raychow.info/// version 2.1.2// description 強制 Google 使用安全連接。//// include htt…

阿諾德.施瓦辛格 訓練方法

阿諾德.施瓦辛格 訓練方法七次“奧林匹亞先生”獲得者、著名影星阿諾德.施瓦辛格&#xff0c;是廣大健美愛好者崇拜的偶像。即使在今天&#xff0c;他那無與倫比的二頭肌和胸肌仍為人們津津樂道。本文是他通過親身體會&#xff0c;講述了怎樣鍛煉才能增長肌肉的觀點和方法&…

ADC和SBB命令

ADC 帶進位加法指令 用法&#xff1a; adc 操作數1&#xff0c;操作數2相當于&#xff1a; 操作數1操作數2進位標志CF->操作數1現在的eax是0&#xff0c;C1&#xff0c;用adc指令直接會是0x6 SBB 帶進位減法指令 用法&#xff1a; sbb 操作數1&#xff0c;操作數2相當…

Java——集合(輸入一串字符串,統計字符串中每個字符出現的次數)

A&#xff1a;案例演示 需求&#xff1a;輸入一串字符串&#xff0c;統計字符串中每個字符出現的次數** 分析&#xff1a;1&#xff0c;定義一個需要被統計字符的字符串2&#xff0c;將字符串轉化為字符數組&#xff0c;才能拿到每一個字符3&#xff0c;定義雙列集合存儲字符串…

entry數組_數組entry()方法以及JavaScript中的示例

entry數組JavaScript entry()方法 (JavaScript entries() method) entries() method is used to create an iterator object of an array to access the keys (index) and values. entry()方法用于創建數組的迭代器對象&#xff0c;以訪問鍵(索引)和值。 Syntax: 句法&#xf…

mul和div指令(8位,16位,32位)

MUL 無符號乘法指令&#xff0c;默認操作數與eax相乘&#xff08;這里只說32位&#xff0c;其他與下面的div類似&#xff09; 格式&#xff1a; mul 操作數 //操作數只有一個操作數與eax相乘&#xff0c;結果共有16位&#xff08;這里的16位是16進制數&#xff09;&#xff…

2011年年終盤點

不知不覺又到了年底&#xff0c;我坐在電腦前&#xff0c;竭力的回憶&#xff0c;卻發現回憶中一片空白&#xff0c;能記起也就那么幾件事。 一、在暑假做了一個多月的電子商務 在這個過程中&#xff0c;我了解到電子商務的基本流程&#xff0c;以及一些銷售技巧&#xff0c;還…

ASP.NET Application,Session,Cookie和ViewState等對象用法和區別

ASP.NET Application,Session,Cookie和ViewState等對象用法和區別 在ASP.NET中&#xff0c;有很多種保存信息的內置對象&#xff0c;如:Application,Session,Cookie,ViewState和Cache等。下面分別介紹它們的用法和區別。 方法 信息量大小 作用域和保存時間 應用…

Java——集合(HashMap與Hashtable的區別)

* HashMap和Hashtable的區別* 共同點&#xff1a;* 底層都是哈希算法&#xff0c;都是雙列集合* 區別&#xff1a;* 1&#xff0c;HashMap是線程不安全的&#xff0c;效率高* Hashtable是線程安全的&#xff0c;效率低 * 2&#xff0c;HashMap可以存儲null鍵和null值* Has…

判斷字符串是否構成回文_構成字符串回文的最小刪除數

判斷字符串是否構成回文Problem statement: 問題陳述&#xff1a; Given string str find the minimum number of deletions such that the resultant string is a palindrome. 給定的字符串str找到最小的刪除數&#xff0c;以使最終的字符串成為回文。 Input:Each input con…

imul和idiv指令

imul 有符號乘法指令&#xff0c;分單操作數&#xff0c;雙操作數和但操作數 單操作數&#xff1a;此形式與mul指令使用完全相同&#xff0c;操作數乘以al、ax、或eax寄存器中的值&#xff0c;乘積分別存儲到ax、dx&#xff1a;ax或edx&#xff1a;eax中 執行指令&#xff1a…

Ajax的注冊應用

最近發現Ajax在用戶注冊表單和用戶登錄表單方面應用&#xff0c;最能體現Ajax的交互特點&#xff0c;因此又是寫了一個習作&#xff01; 演示效果 新開窗口地址&#xff1a; http://www.klstudio.com/demo/ajax/reg.htm 下載地址:http://www.klstudio.com/demo/ajax/reg.rar &…

Java——集合(模擬斗地主洗牌和發牌進行排序)

//改進版&#xff0c;沒有進行按牌的地位從小到大排序 package com.yy.test;import java.util.ArrayList; import java.util.Collections;public class Test2 {/*** * A&#xff1a;案例演示* 模擬斗地主洗牌核發牌&#xff0c;牌沒有排序* * 分析&#xff1a;* 1&#xff0c;…

應用程序控件

活動指示器 當任務或進程已經完成時&#xff0c;活動指示器就會消失。推薦您使用這種默認行為&#xff0c;因為用戶期望在有動作發生時看到活動指示器&#xff0c;而且他們會將靜止不動的活動指示器與停滯的進程聯想到一起。 要了解如何顯示網絡活動指示器&#xff0c;請參考UI…