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. Linux chmod命令详解

    Linux chmod命令详解 chmod----改变一个或多个文件的存取模式(mode)   chmod [options] mode files   只能文件属主或特权用户才能使用该功能来改变文件 ...

  2. [iOS] 使用xib作为应用程序入口 with IDE

    [iOS] 使用xib作为应用程序入口 with IDE 在「使用xib做为应用程序入口 with Code」这篇文章中,介绍了如何透过写Code的方式,来使用xib做为应用程序的入口.但其实在Xco ...

  3. Arcengine实现创建网络数据集札记(一)

    一 引子 网络数据集,GIS空间分析基础的理论和知识,是最短路径分析.连通性分析等其他空间分析技术的数据基础. 以往,网络数据集的研究很少,此次项目开发过程中,对网络数据集以及arcengine创建网 ...

  4. IOS字典NSDictionary与NSMutableDictionary知识点

    字典中的元素是以键值对的形式存储的,键值对的键和值,都是任意的对象,但是键往往使用字符串,字典存储对象的地址没有顺序,字典的遍历分为:键的遍历和值的遍历,字典与数组的区别:数组讲究顺序,而字典可以快速 ...

  5. Effective Java 阅读笔记——枚举和注解

    30:用enum代替int常量 当需要一组固定常量的时候,应该使用enum代替int常量,除了对于手机登资源有限的设备应该酌情考虑enum的性能弱势之外. 31:用实例域代替序数 应该给enum添加i ...

  6. IOS 欢迎页(UIScrollView,UIPageControl)

    本文介绍了app欢迎页的简单实现.只有第一次运行程序时才说会出现,其余时间不会出现.下面是效果图. 代码如下:(如有不明白的可以评论我,我会详细讲解) // // ViewController.m / ...

  7. iOS开发中的一些细节BUG的解决

    这篇博客里我将不定期更新自己遇到的一些细节上的BUG,并提供解决方法,遇到同样问题的童鞋们可以参考交流一下. 1.关于tableView的tableHeaderView 请注意,我这里说的是table ...

  8. Android Small插件化框架解读——Activity注册和生命周期

    通过对嵌入式企鹅圈原创团队成员degao之前发表的<Android Small插件化框架源码分析>的学习,对Android使用的插件化技术有了初步的了解,但还是有很多需要认真学习的地方,特 ...

  9. 【iOS开发】多屏尺的自动适配 AutoLayout (纯代码方式)

    关于AutoLayout,最早从iOS6开始引入使用.   主要功能是使用约束,对视图进行相对布局,以适应不同屏尺的变换.   网上大量的资料都在介绍xib和storyboard,如何使用AutoLa ...

  10. iOS之 随笔Xcode7的lipo

    此文是学习所用,若要转载请注明出处 Xcode的lipo xcrun -sdk iphoneos lipo Xcode7以后lipo存放位置变化 /Applications/Xcode.app/Con ...