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. QT分页控件,开源,供大家使用

    下载地址:http://files.cnblogs.com/dragonsuc/qt5.rar

  2. [mysql] timestamp自动更新和初始化

    1.概述 在我们设计表的时候,考虑将行数据的创建时间和最后更新时间记录下来是很好的实践.尤其是可能需要做数据同步或者对数据新鲜度有要求的表.举些应用场景,更新距上次更新超过2小时的行数据,或者是将一个 ...

  3. IOS缓存机制详解

    资料均来自互联网,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. 人魔七七:http://www.cnblogs.com/qiqibo/ 为什么要有缓存 应用需要 ...

  4. Sass学习之路(1)——Sass简介

    Sass是CSS的一种预处理器语言,类似的语言还有Less,Stylus等. 那么什么是CSS预处理器? CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些 ...

  5. xampp 访问出现New XAMPP security concept 解决办法

    最近通过手机访问本地服务器时出现以下问题: Access forbidden! New XAMPP security concept: Access to the requested director ...

  6. echarts 地图图

    效果如下图: 1.下载echarts对应包: http://echarts.baidu.com/ 2.前端页面: <!DOCTYPE html> <html xmlns=" ...

  7. Android bitmap高效显示和优化

    第一部分:Bitmap高效显示 应用场景:有时候我们想在界面上显示一个网络图片或者显示一张本地的图片,但是图片本身是很大的有几兆,但是显示的位置很小或者说我们可以用更小的图片来满足这样的需求,如果把整 ...

  8. 保持listview当前位置

    保持listview滑动的位置,一般用在增加listview子item中布局的评论或者退出当前活动,再次进入继续阅读时. 利用ListView.getFirstVisiblePosition()来获取 ...

  9. iOS开发之网络编程--4、NSURLSessionDataTask实现文件下载(离线断点续传下载) <进度值显示优化>

    前言:根据前篇<iOS开发之网络编程--2.NSURLSessionDownloadTask文件下载>或者<iOS开发之网络编程--3.NSURLSessionDataTask实现文 ...

  10. yum安装mariadb

    安装mysql yum install mariadb mariadb-server MySQL-python mysql-devel Package MySQL-python-1.2.5-1.ibm ...