TreeMap树映射取出对象的方式
1.直接获取该TreeMap集合中的关系:
entrySet()
Map接口中的方法,返回值类型是该集合中的各个关系;返回值类型是:Set类型的Map.EntrySet类型;然后在通过Set集合中特有的元素取出方式:将集合中的各个元素迭代取出;
例子:
1 import java.util.*; 2 class MapDemo{ 3 pulbic static void main(String args[]){ 4 TreeMap<String,String> tr=new TreeMap<String,String>(); 5 tr.put("asdfda","asdfd"); 6 tr.put("asdfda","asdfd"); 7 tr.put("asdfda","asdfd"); 8 tr.put("asdfda","asdfd"); 9 Set<Map.EntrySet<String,String>> entryset=tr.entrySet(); 10 //将TreeSet中的各个映射关系通过他自身提供的方法(entrySet())转存到Set集合中,目的是为了使用Set集合中迭代器取出方法 11 Iterator<Map.Entry<String,String>> it=entryset.iterator();//新建一个迭代器,准备遍历整个Set<Map.EntrySet<String,String>>集合; 12 while(it.hasNext()){ 13 Map.Entry<String,String> en=it.next();// 14 System.out.println(en.getKey()+":"+en.getValue());//在迭代每一个元素的同时,同时调用Map.Entry中的方法分别获取键和值 15 } 16 } 17 }
2.首先获得TreeSet集合中的所有的建(keySet()方法),然后在通过每个建获得各个建所对应的值
1 import java.util.*; 2 class MapDemo4{ 3 pulbic static void main(String args[]){ 4 TreeMap<String,String> tr=new TreeMap<String,String>(); 5 tr.put("luwenxiang0","123"); 6 tr.put("luwenxiang1","123"); 7 tr.put("luwenxiang2","123"); 8 tr.put("luwenxiang3","123"); 9 tr.put("luwenxiang4","123"); 10 Set<String> arr=tr.keySet(); 11 Iterator<String> it=arr.iterator(); 12 while(it.hasNext()){ 13 String str=it.next(); 14 System.out.println(str+"::"+tr.get(str)); 15 } 16 } 17 }
3.将map转化为集合
1 package com.Champter15; 2 3 import java.util.Collection; 4 import java.util.Iterator; 5 import java.util.Set; 6 import java.util.TreeMap; 7 8 class UDiskPrice implements Comparable<UDiskPrice>{ 9 int price; 10 public UDiskPrice(int price){ 11 this.price = price; 12 } 13 public int compareTo(UDiskPrice uDiskPrice){ 14 if(this.price-uDiskPrice.price==0) return 1; 15 else return this.price-uDiskPrice.price; 16 } 17 } 18 19 class UDiskCapacity implements Comparable<UDiskCapacity>{ 20 int capacity; 21 public UDiskCapacity(int capacity){ 22 this.capacity = capacity; 23 } 24 public int compareTo(UDiskCapacity uDiskCapacity){ 25 if(this.capacity-uDiskCapacity.capacity==0) return 1; 26 else return this.capacity-uDiskCapacity.capacity; 27 } 28 } 29 30 public class Work3_3 { 31 public static void main(String[] args) { 32 TreeMap<UDiskPrice,UDiskCapacity> uDiskTreeMap = new TreeMap<>(); 33 uDiskTreeMap.put(new UDiskPrice(22),new UDiskCapacity(16)); 34 uDiskTreeMap.put(new UDiskPrice(11),new UDiskCapacity(8)); 35 uDiskTreeMap.put(new UDiskPrice(33),new UDiskCapacity(64)); 36 uDiskTreeMap.put(new UDiskPrice(55),new UDiskCapacity(256)); 37 uDiskTreeMap.put(new UDiskPrice(44),new UDiskCapacity(128)); 38 39 Collection<UDiskCapacity> collection = uDiskTreeMap.values();//由于map没有迭代器,将映射的值存到集合中 40 Iterator<UDiskCapacity> iterator = collection.iterator();//使用集合才自带的迭代器访问值,值的类型为UDiskCapacity 41 while (iterator.hasNext()){ 42 UDiskCapacity uDiskCapacity = iterator.next();//使用UDiskCapacity类型声明的对象变量接收 43 System.out.println("按照价格升序的U盘容量:"+uDiskCapacity.capacity); 44 }
}
版权声明:本文为sunbr原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。