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. ASP.NET MVC:窗体身份验证及角色权限管理示例

    ASP.NET MVC 建立 ASP.NET 基础之上,很多 ASP.NET 的特性(如窗体身份验证.成员资格)在 MVC 中可以直接使用.本文旨在提供可参考的代码,不会涉及这方面太多理论的知识. 本 ...

  2. sass开发过程中遇到的几个坑

    1.安装sass被墙的问题 安装完`ruby`后,打开`ruby cmd` 输入`gem install sass`,安装失败,有可能是镜像源的问题,也有可能是墙的问题. 因为公司内网的奇葩限制,各种 ...

  3. windows上JSP开发环境全搭建

    JSP开发环境全搭建 最近需要用到JSP做项目,所以要配置JSP的开发环境,总结一下配置步骤以备以后再配置需要. 配置JAVA开发环境,配置JDK 下载JDK,在这里下载开发所需的JDK,可以根据自己 ...

  4. WP修改ProgressBar的前景色

    重载默认主题中的值,修改ProgressBar的前景色 做一个小项目时,用到 ProgressBar添加一个加载效果,但是背景不是白色的,调试时发现自己选的主题色与背景色相近,特别不清晰,加载效果几乎 ...

  5. css三角形的实现

    实底三角形: <html> <head> <title></title> <style type="text/css"> ...

  6. ALV要特别小心的一些地方

    1.在ALV报表里面如果你做了一个字段可编辑而且这个字段是带有小数的数量或者金额,这时候当你输入一个数字保存或者去操作的时候发现他的值会变掉,这个要在设置列属性的时候给他对应的参考表和字段L_FIEL ...

  7. android 数据文件存取至储存卡

    来自:http://blog.csdn.net/jianghuiquan/article/details/8569233 <?xml version="1.0" encodi ...

  8. 转:Web App开发入门

    WebApp与Native App有何区别呢? Native App: 1.开发成本非常大.一般使用的开发语言为JAVA.C++.Objective-C. 2.更新体验较差.同时也比较麻烦.每一次发布 ...

  9. vsphere vcenter server下安装ubuntu的vmwaretools

    0.参考文献 百度经验:这里面是以redhat桌面版为实例进行介绍的,我的环境是ubuntu-server,虽然不一样,也可以参考 http://jingyan.baidu.com/article/2 ...

  10. Mac上的软件使用介绍

    目录大纲: Drop to GIF Parallels Desktop 1.Drop to GIF 功能:将视频文件可以生产动态图gif文件 网址在github上:https://github.com ...