collection是单列集合,map是双列集合。其中包含<k,v>键值对,注意:键具有唯一性,而值不唯一。

在此列举三个读取方式:keyset,valueset,及entryset。

keyset是获取所有键的集合。valueset是获取所有值得集合。entryset是获取所有条目的集合,entry是每一个条目的意思包含其中的(键与值)。

具体用法为:

 package javastudy;

 import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Set; public class TextMap {
public static void main(String args[])
{
//建立一个hashmap数组,(注意:因为因为map类型的是键值对,且值得类型首字母要大些)
//HashMap<Float, String> hp =new HashMap<Float ,String>();
HashMap<String,String> hp =new HashMap<String ,String>();
//用put定义,映射出实际的键与值
hp.put( "010", "北京");
hp.put( "021", "上海");
hp.put( "022", "重庆");
hp.put( "023", "天津");
//遍历打印其数组
//获得所有键的集合
Set<String> sd=hp.keySet();
Iterator<String> zips= sd.iterator();
while(zips.hasNext())
{
//得到键值
String zip=zips.next();
//因为键值唯一,所以从每个键中得到值,键唯一,值不唯一。
String cityName= hp.get(zip);
System.out.println(zip+":"+cityName);
}
//values得到所有值得集合
Collection<String> cs=hp.values();
Iterator<String> it = cs.iterator();
while(it.hasNext())
{
System.out.println(it.next());
} //entrySet是打印获得所有条目,entry=一行,一个条目的意思;
Set<Entry<String, String>> se= hp.entrySet();
Iterator<Entry<String, String>> ie= se.iterator();
while(ie.hasNext())
{
//键唯一,值不唯一;getKey是得到键的集合,getValue得到所有值得集合;
Entry<String, String> es= ie.next();
System.out.println(es.getKey()+":"+es.getValue());
} } }

另外尝试利用自定义的概念建立一个比较器及其People的类的集合排序,具体为(如果有疑问参考上一章的具体介绍):

 package javastudy;

 import java.util.Comparator;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap; public class TextTree { public static void main(String[] args) {
// TODO Auto-generated method stub
TreeMap<People,People> tm= new TreeMap<People,People>(new MyComp());
tm.put(new People("Mark",12), new People("Jine",19));
tm.put(new People("Keven",16), new People("Bob",20));
Set<Entry<People,People>> se =tm.entrySet();
Iterator<Entry<People, People>> is=se.iterator();
while(is.hasNext())
{
Entry<People, People>es=is.next();
System.out.println(es.getKey()+"\t"+es.getValue());
}
}
}
class MyComp implements Comparator<People>
{ @Override
public int compare(People o1, People o2) {
// TODO Auto-generated method stub
return o1.name.compareTo(o2.name);
} }
class People
{
String name;
int age;
People(String name,int age)
{
this.name=name;
this.age=age;
}
void show()
{
System.out.println(String.format("姓名=%s,年龄=%d", name,age));
}
@Override
public String toString() {
return "name=" + name + ", age=" + age ;
}
}

map学习笔记的更多相关文章

  1. Python map学习笔记

    map是一个高阶用法,字面意义是映射,它的作用就是把一个数据结构映射成另外一种数据结构. map用法比较绕,最好是对基础数据结构很熟悉了再使用,比如列表,字典,序列化这些. map的基本语法如下: m ...

  2. Scala学习笔记之:tuple、array、Map

    [TOC] 本文<快学Scala>的笔记 tuple学习笔记 tuple的定义 对偶是元组(tuple)的最简单形态--元组是不同类型的值的聚集. 元组的值是通过将单个值包含在圆括号中构成 ...

  3. [原创]java WEB学习笔记98:Spring学习---Spring Bean配置及相关细节:如何在配置bean,Spring容器(BeanFactory,ApplicationContext),如何获取bean,属性赋值(属性注入,构造器注入),配置bean细节(字面值,包含特殊字符,引用bean,null值,集合属性list map propert),util 和p 命名空间

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. [原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  5. JavaSE中Map框架学习笔记

    前言:最近几天都在生病,退烧之后身体虚弱.头疼.在床上躺了几天,什么事情都干不了.接下来这段时间,要好好加快进度才好. 前面用了三篇文章的篇幅学习了Collection框架的相关内容,而Map框架相对 ...

  6. JavaScript学习笔记(六)——Map、Set与iterable

    在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...

  7. JavaScript学习笔记(十)——高阶函数之map,reduce,filter,sort

    在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...

  8. Hadoop学习笔记2 - 第一和第二个Map Reduce程序

    转载请标注原链接http://www.cnblogs.com/xczyd/p/8608906.html 在Hdfs学习笔记1 - 使用Java API访问远程hdfs集群中,我们已经可以完成了访问hd ...

  9. Go语言学习笔记十三: Map集合

    Go语言学习笔记十三: Map集合 Map在每种语言中基本都有,Java中是属于集合类Map,其包括HashMap, TreeMap等.而Python语言直接就属于一种类型,写法上比Java还简单. ...

随机推荐

  1. ArrayList集合

    //在使用ArrayList时别忘了引用命名空间 using System.Collections;//首先得导入命名空间 //01.添加方法 add方法 //告诉内存,我要存储内容 ArrayLis ...

  2. 用SQL语句操作数据

    转载请注明出处:http://www.cnblogs.com/smbk/ 1.点击[新建查询]按钮,打开SQL命令编辑框,对数据库表的操作以及维护都可以通过编辑SQL命令实现. 2.在编辑框内编辑创建 ...

  3. iScroll-js—“smooth scrolling for the web”

    原文地址: http://bigdots.github.io/2015/12/15/iScroll-js%E2%80%94%E2%80%94smooth%20scrolling%20for%20the ...

  4. ArcObject10.1降级至10.0

    最开始接触ArcGIS版本是9.3,为了需要也安装了9.2进行开发:因为自己的电脑配置较低,所以跑不起10.0中文版:毕业工作后,行业内用10.1居多(虽然10.3已出):现在10.4都要出来了:由于 ...

  5. vIDC v2.0 强大的端口转发神器使用总结-开放内网tfs代码服务

    vIDC2.0 端口映射工具,最近在公司闲来无事,想自己整个tfs来管理自己的研究代码. 本来是想用微软Visual Studio提供的免费tfs,但是无奈速度太慢.他们的服务器在美国,中国也没有代理 ...

  6. CRM 2013 系统设置新功能一:界面自动保存 及 SDK 中 Xrm.Page.data.entity.save

    CRM 2013 界面会自动保存了..在系统设置中默认“是”,如果不需要可以调整. CRM实体记录在新建时会有出现“保存”按钮,非新建状态下,没有“保存”按钮只有“新建”按钮,系统将会自动为你保存最后 ...

  7. Web打印控件

    Lodop是什么? 有人说她是Web打印控件,因为她能打印.在浏览器中以插件的形式出现,用简单一行语句就把整个网页打印出来: 有人说她是打印编程接口,因为她介于浏览器和打印设备之间,是个通道和桥梁,几 ...

  8. android布局--Android fill_parent、wrap_content和match_parent的区别

    来自:http://www.cnblogs.com/nikyxxx/archive/2012/06/15/2551390.html 三个属性都用来适应视图的水平或垂直大小,一个以视图的内容或尺寸为基础 ...

  9. How to load a raster dataset to the raster field in a feature class

    A feature class or table can have a raster attribute field to store any raster related to the featur ...

  10. Java.lang.OutOfMemoryError处理

    此错误对于新手做项目的时候经常会发生,而且不容易处理 默认情况下,每个android程序的dailvik虚拟机的最大堆空间大小为16M 当加载的图片太多或图片过大时经常出现OOM问题 而出现此类问题最 ...