1.直接获取该TreeMap集合中的关系:
entrySet()

  Map接口中的方法,返回值类型是该集合中的各个关系;返回值类型是:Set类型的Map.EntrySet类型;然后在通过Set集合中特有的元素取出方式:将集合中的各个元素迭代取出;
例子:

 import java.util.*;
class MapDemo{
pulbic static void main(String args[]){
TreeMap<String,String> tr=new TreeMap<String,String>();
tr.put("asdfda","asdfd");
tr.put("asdfda","asdfd");
tr.put("asdfda","asdfd");
tr.put("asdfda","asdfd");
Set<Map.EntrySet<String,String>> entryset=tr.entrySet();
//将TreeSet中的各个映射关系通过他自身提供的方法(entrySet())转存到Set集合中,目的是为了使用Set集合中迭代器取出方法
Iterator<Map.Entry<String,String>> it=entryset.iterator();//新建一个迭代器,准备遍历整个Set<Map.EntrySet<String,String>>集合;
while(it.hasNext()){
Map.Entry<String,String> en=it.next();//
System.out.println(en.getKey()+":"+en.getValue());//在迭代每一个元素的同时,同时调用Map.Entry中的方法分别获取键和值
}
}
}

2.首先获得TreeSet集合中的所有的建(keySet()方法),然后在通过每个建获得各个建所对应的值

 import java.util.*;
class MapDemo4{
pulbic static void main(String args[]){
TreeMap<String,String> tr=new TreeMap<String,String>();
tr.put("luwenxiang0","123");
tr.put("luwenxiang1","123");
tr.put("luwenxiang2","123");
tr.put("luwenxiang3","123");
tr.put("luwenxiang4","123");
Set<String> arr=tr.keySet();
Iterator<String> it=arr.iterator();
while(it.hasNext()){
String str=it.next();
System.out.println(str+"::"+tr.get(str));
}
}
}

3.将map转化为集合

 package com.Champter15;

 import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeMap; class UDiskPrice implements Comparable<UDiskPrice>{
int price;
public UDiskPrice(int price){
this.price = price;
}
public int compareTo(UDiskPrice uDiskPrice){
if(this.price-uDiskPrice.price==0) return 1;
else return this.price-uDiskPrice.price;
}
} class UDiskCapacity implements Comparable<UDiskCapacity>{
int capacity;
public UDiskCapacity(int capacity){
this.capacity = capacity;
}
public int compareTo(UDiskCapacity uDiskCapacity){
if(this.capacity-uDiskCapacity.capacity==0) return 1;
else return this.capacity-uDiskCapacity.capacity;
}
} public class Work3_3 {
public static void main(String[] args) {
TreeMap<UDiskPrice,UDiskCapacity> uDiskTreeMap = new TreeMap<>();
uDiskTreeMap.put(new UDiskPrice(22),new UDiskCapacity(16));
uDiskTreeMap.put(new UDiskPrice(11),new UDiskCapacity(8));
uDiskTreeMap.put(new UDiskPrice(33),new UDiskCapacity(64));
uDiskTreeMap.put(new UDiskPrice(55),new UDiskCapacity(256));
uDiskTreeMap.put(new UDiskPrice(44),new UDiskCapacity(128)); Collection<UDiskCapacity> collection = uDiskTreeMap.values();//由于map没有迭代器,将映射的值存到集合中
Iterator<UDiskCapacity> iterator = collection.iterator();//使用集合才自带的迭代器访问值,值的类型为UDiskCapacity
while (iterator.hasNext()){
UDiskCapacity uDiskCapacity = iterator.next();//使用UDiskCapacity类型声明的对象变量接收
System.out.println("按照价格升序的U盘容量:"+uDiskCapacity.capacity);
}
  }

TreeMap树映射取出对象的方式的更多相关文章

  1. [19/03/26-星期二] 容器_Map(图、键值对、映射)接口之HashMap(散列映射)&TreeMap(树映射)

    一.概念&方法 现实生活中,我们经常需要成对存储某些信息.比如,我们使用的微信,一个手机号只能对应一个微信账户,这就是一种成对存储的关系. Map就是用来存储“键(key)-值(value) ...

  2. Map集合的遍历方式以及TreeMap集合保存自定义对象实现比较的Comparable和Comparator两种方式

    Map集合的特点 1.Map集合中保存的都是键值对,键和值是一一对应的 2.一个映射不能包含重复的值 3.每个键最多只能映射到一个值上 Map接口和Collection接口的不同 Map是双列集合的根 ...

  3. 分享公司DAO层数据库结果映射到对象的方法

    主题 前面写过一篇文章,分享了公司是怎么动态封装SQL查询条件的(http://www.cnblogs.com/abcwt112/p/5874401.html). 里面提到数据库查询结果二维数组最后是 ...

  4. 以对象的方式来访问xml数据表(三)

    怎样以对象的方式来访问xml数据表? 在讲如何具体实现(二)中所说的专门用于访问xml文件的动态链接库之前,我们先来看看这个动态链接库具体要实现什么功能. 动态链接库IXmlDB.dll的功能: 1. ...

  5. 以对象的方式来访问xml数据表(二)

    为什么要以对象的方式来访问xml数据表? 还记得,自己是在一次完成师兄布置的任务时接触到了xml,那时候需要用xml来作为数据文件,保存一个简单的图书管理系统的数据.于是就知道了,可以用xml文件来保 ...

  6. ORM映射(对象关系映射)

    ORM映射(对象关系映射)分创建表和操作表两个部分创建单表创建关联表(foreignKey) 一对一 一对多(重点) 多对多(重点) 创建表后加str方法把打印的地址转换成对应字符表的操作(增删改查) ...

  7. JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删改查),事件

    JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删 ...

  8. springmvc url处理映射的三种方式:

    一.SpringMVC简介 SpringMVC是一种基于Spring实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,使用了MVC架构模式的思想,将web层进行职责解耦,并管理应用所需对象 ...

  9. ASP.NET Core搭建多层网站架构【8.2-使用AutoMapper映射实体对象】

    2020/01/29, ASP.NET Core 3.1, VS2019, AutoMapper.Extensions.Microsoft.DependencyInjection 7.0.0 摘要:基 ...

随机推荐

  1. Ceph Paxos相关代码解析

    Leader选举 Ceph中的leader选举是一个Paxos Lease过程,与BasicPaxos的目的不同.后者用于解决数据一致性问题,而Paxos Lease是为了选举出一个leader承担m ...

  2. SpringBoot系列:Spring Boot集成Spring Cache,使用RedisCache

    前面的章节,讲解了Spring Boot集成Spring Cache,Spring Cache已经完成了多种Cache的实现,包括EhCache.RedisCache.ConcurrentMapCac ...

  3. 算法---区间K大数查找 Java 蓝桥杯ALGO-1

    import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(Strin ...

  4. ThreadPoolExecutor使用方法

    先看构造方法 ,ThreadPoolExecutor共4个构造方法: 直接看参数最多的7个参数分别代表: public ThreadPoolExecutor(int corePoolSize, int ...

  5. 百万年薪python之路 -- 请求跨域和CORS协议详解

    楔子 什么是同源策略 同源策略,它是由Netscape提出的一个著名的安全策略.现在所有支持JavaScript 的浏览器都会使用这个策略.所谓同源是指,域名,协议,端口相同.当一个浏览器的两个tab ...

  6. day1-01 温度转换

    一."温度转换"问题分析 1.1 温度转换 温度刻画的两种不同体系 摄氏度:中国等世界大多数国家使用 以1标准大气压下水的结冰点为0度,沸点为100度,将温度进行等分刻画 华氏度: ...

  7. PHPStorm IntelliJ IDEA 代码缩进风格设置

    关于缩进风格,我还是觉得4空格比tab好 File -> Settings -> Editor -> Code Style: 如图,把Detect and use exsiting ...

  8. vue-cli 如何使用vue-awesome?

    font-awesome 有很多图标字体可供使用,那么,如何在vue中使用呢? 进入重点... 1.安装vue-awesome npm insatll vue-awesome 2.在main.js 注 ...

  9. fenby C语言 p7

    /*小小加法计算器*/=函数功能说明;(多行) //=注释:(一行) P8 比较 #include <stdio.h>int main(){ int a=10,b=20; if(a< ...

  10. 详解k8s中的liveness和readiness的原理和区别

    liveness与readiness的探针工作方式源码解析 liveness和readiness作为k8s的探针,可以对应用进行健康探测. 二者支持的探测方式相同.主要的探测方式支持http探测,执行 ...