使用TreeMap集合實(shí)現(xiàn)以學(xué)生為對(duì)象把學(xué)生的學(xué)號(hào)按大到小的排序
大家好,我是Java進(jìn)階者。
一、LinkedHashMap類
1.LinkedHashMap類是HashMap的子類,LinkedHashMap可以使用雙向鏈表來維護(hù)內(nèi)部元素的關(guān)系,保證了元素迭代的順序,這個(gè)迭代的順序可以是插入或訪問順序。HashMap是無序的,LinkedHashMap是有序的。
2.LinkedHashMap的用法例子:
- import java.util.*;
- public class m02 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Map m=new HashMap();
- m.put("1", "Java程序設(shè)計(jì)");
- m.put("2", "軟件測(cè)試");
- m.put("3", "數(shù)據(jù)庫原理及其應(yīng)用");
- Set ks=m.keySet();
- Iterator i=ks.iterator();
- while(i.hasNext()){
- String key=(String)i.next();
- String value=(String) m.get(key);
- System.out.println(key+"--"+value);
- }
- }
- }
運(yùn)行的結(jié)果是:
二、如何Map存儲(chǔ)的所有值的Collection集合?
1.獲取Map存儲(chǔ)的所有值的Collection集合的值是調(diào)用Map的values()方法,然后迭代集合每一個(gè)值。
2.實(shí)現(xiàn)的例子:
- import java.util.*;
- public class m01 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Map m=new HashMap();
- //存儲(chǔ)鍵和值
- m.put("c1", "Java程序設(shè)計(jì)");
- m.put("c2", "軟件測(cè)試");
- m.put("c3", "數(shù)據(jù)庫原理及其應(yīng)用");
- Collection v=m.values();
- Iterator i=v.iterator();
- while(i.hasNext()){
- String value=(String)i.next();
- System.out.println(value);
- }
- }
- }
運(yùn)行的結(jié)果是:
三、TreeMap集合
1.TreeMap是Map接口的其中之一實(shí)現(xiàn)類。TreeMap也是用來存儲(chǔ)鍵和值的,也不可以出現(xiàn)重復(fù)的鍵。TreeMap它是按鍵(key)的自然順序排列的。
2.TreeMap的用法例子:
- import java.util.*;
- public class m02 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- TreeMap m=new TreeMap();
- m.put("4", "Java程序設(shè)計(jì)");
- m.put("6", "軟件測(cè)試");
- m.put("2", "數(shù)據(jù)庫原理及其應(yīng)用");
- Set ks=m.keySet();
- Iterator i=ks.iterator();
- while(i.hasNext()){
- String key=(String)i.next();
- String value=(String) m.get(key);
- System.out.println(key+"--"+value);
- }
- }
- }
運(yùn)行的結(jié)果是:
四、使用TreeMap集合實(shí)現(xiàn)以學(xué)生為對(duì)象把學(xué)生的學(xué)號(hào)按大到小的排序
1.在使用TreeMap集合通過自定義的比較器方法對(duì)所有鍵進(jìn)行排序。
2.例子的實(shí)現(xiàn):
- import java.util.*;
- public class m02 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- //創(chuàng)建TreeMap集合
- TreeMap m=new TreeMap(new My());
- m.put("4", "張三");
- m.put("6", "李四");
- m.put("2", "王五");
- Set ks=m.keySet();
- Iterator i=ks.iterator();
- while(i.hasNext()){
- String key=(String)i.next();
- String value=(String) m.get(key);
- System.out.println(key+"--"+value);
- }
- }
- }
- //定義類來自定義比較器
- class My implements Comparator{
- //實(shí)現(xiàn)比較方法
- public int compare(Object obj1,Object obj2){
- String id1=(String) obj1;
- String id2=(String) obj2;
- return id2.compareTo(id1);
- }
- }
運(yùn)行的結(jié)果是:
五、總結(jié)
本文主要介紹了LinkedHashMap類、Map如何存儲(chǔ)所有值的Collection集合、TreeMap集合、使用TreeMap集合實(shí)現(xiàn)以學(xué)生為對(duì)象把學(xué)生的學(xué)號(hào)按大到小的排序。
LinkedHashMap可以使用雙向鏈表來維護(hù)內(nèi)部元素的關(guān)系,保證了元素迭代的順序,這個(gè)迭代的順序可以是插入或訪問順序。
獲取Map存儲(chǔ)的所有值的Collection集合的值是調(diào)用Map的values()方法。
使用TreeMap集合實(shí)現(xiàn)以學(xué)生為對(duì)象把學(xué)生的學(xué)號(hào)按大到小的排序是通過自定義一個(gè)比較器的方法,然后實(shí)現(xiàn)比較方法。希望大家通過本文的學(xué)習(xí),對(duì)你有幫助!
本文轉(zhuǎn)載自微信公眾號(hào)「Java進(jìn)階學(xué)習(xí)交流」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Java進(jìn)階學(xué)習(xí)交流公眾號(hào)。