Map笔记
Map,是一个接口,是以键值对的方式存储的,并且键是无序且不可重复的。Map和Collection没有什么关系,Map是一对一对的存,而Collection是一个一个的存。
下面有一个子接口:SortedMap,key无序不可重复,但是可以按照大小排序。这个key等同于SortedSet。有一个实现类TreeMap,TreeMap中的key就是一个TreeSet,key要实现Compareble接口,或者单独写个比较器Comparator。
有两个实现类:
HashMap:哈希散列表,其中的key等同于一个Set集合,且要重写hashCode()和equals()。
HashTable:
Map中,如果key重复了,value采用覆盖的方式!!!后面put的覆盖前面的
HashMap默认初始化容量16,加载因子0.75
public class HashMapTest {
public static void main(String[] args){
Map map = new HashMap();
map.put("1", "kobe");
map.put("2", "kd");
map.put("3", "tracy");
map.put("4", "duncan");
map.put("1", "koo");
//获取所有值
Iterator it = map.values().iterator();
while(it.hasNext()){
System.out.println(it.next());
}
//获取所有键
Iterator it2 = map.keySet().iterator();
while(it2.hasNext()){
Object key = it2.next();
Object value = map.get(key);
System.out.println(key + "--->" + value);
}
//将map转换成set的过程
Set setEntry = map.entrySet();
Iterator it3 = setEntry.iterator();
while (it3.hasNext()){
System.out.println(it3.next());
}
}
}
koo
kd
tracy
duncan
1--->koo
2--->kd
3--->tracy
4--->duncan
1=koo
2=kd
3=tracy
4=duncan
HashTable
默认初始化容量11,加载因子0.75
Properties是他的一个子类。同样键不能重复,而且重复则覆盖的原则,还有就是键值对都是String类型。
SortedMap中的key排序的实现
public class SortedMapTest {
public static void main(String[] args) {
Map map = new TreeMap();
Product p1 = new Product("apple" , 7.0);
Product p2 = new Product("banana" , 5.0);
Product p3 = new Product("mango" , 8.0);
Product p4 = new Product("pear" , 4.0);
Product p5 = new Product("orange" , 3.5);
map.put(p1, 10.0);
map.put(p2, 3.0);
map.put(p3, 9.0);
map.put(p4, 3.3);
map.put(p5, 7.2);
Set set = map.keySet();
Iterator it = set.iterator();
while (it.hasNext()){
Product key = (Product)it.next();
double value = (double)map.get(key);
System.out.println(key.name + "---" + key.price + "---" + value +"kg");
}
}
}
class Product implements Comparable{
String name;
double price;
public Product(String name , double price){
this.name = name;
this.price = price;
}
@Override
public int compareTo(Object o) {
double p1 = this.price;
double p2 = ((Product)o).price;
if (p1 > p2)
return 1;
else if (p1 < p2)
return -1;
else
return 0;
}
}
orange---3.5---7.2kg
pear---4.0---3.3kg
banana---5.0---3.0kg
apple---7.0---10.0kg
mango---8.0---9.0kg
Map笔记的更多相关文章
- Map笔记总结
Map :存储的是键值对,一对一对出现的,要保证键的唯一性. Map常见的三个子类.1.HashTable 底层是哈希表结构,不能存在null的情况.该集合是线程同步的.效率低此类实现一个哈希表,该哈 ...
- Java map笔记
Map 是一个键值对的集合 花和尚 豹子头 鲁智深 林冲 如果想要从map中获得值,可以根据键 Map<Key,velue> Map虽然是集合,但是和collection的接口无关 我们可 ...
- Java基础 - Map接口的实现类 : HashedMap / LinkedHashMap /TreeMap 的构造/修改/遍历/ 集合视图方法/双向迭代输出
Map笔记: import java.util.*; /**一:Collection接口的 * Map接口: HashMap(主要实现类) : HashedMap / LinkedHashMap /T ...
- ES6笔记(6)-- Set、Map结构和Iterator迭代器
系列文章 -- ES6笔记系列 搞ES6的人也是够无聊,把JS弄得越来越像Java.C++,连Iterator迭代器.Set集合.Map结构都出来了,不知道说什么好... 一.简单使用 1. iter ...
- [原创]java WEB学习笔记98:Spring学习---Spring Bean配置及相关细节:如何在配置bean,Spring容器(BeanFactory,ApplicationContext),如何获取bean,属性赋值(属性注入,构造器注入),配置bean细节(字面值,包含特殊字符,引用bean,null值,集合属性list map propert),util 和p 命名空间
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- [原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Java学习笔记之:Java Map集合
一.介绍 通常来说,Map是一个由键值对组成的数据结构,且在集合中每个键是唯一的. 二.笔记 /** * Map:接口. 不是collection的子类 key -value 键值对 key唯一不能重 ...
- STL笔记(1)map
STL笔记(1)map STL之map ZZ from http://hi.baidu.com/liyanyang/blog/item/d5c87e1eb3ba06f41bd576cf.html 1. ...
- 【hadoop代码笔记】Mapreduce shuffle过程之Map输出过程
一.概要描述 shuffle是MapReduce的一个核心过程,因此没有在前面的MapReduce作业提交的过程中描述,而是单独拿出来比较详细的描述. 根据官方的流程图示如下: 本篇文章中只是想尝试从 ...
随机推荐
- Linux学习 -- Shell编程 -- 正则表达式
正则表达式与通配符 正则 -- 匹配字符串 -- 包含匹配 grep.awk.sed等 通配符 -- 匹配文件名 -- 完全匹配 ls.find.cp等 基础正则表达式
- ecshop后台增加模块菜单项详细教程(图文)
有的时候我们会在后台增加新的功能,菜单项是一个程序的入口,是必不可少的,如何在后台增加菜单项呢,大家可以参考下面的教程: 例如:想在后台左侧的菜单栏的"促销管理"下添加一个&q ...
- lpr
http://flatline.cs.washington.edu/orgs/acm/tutorials/printing/index.html
- 模态对话框 bootstrap-modal.js
调用方式 通过data属性 无需编写JavaScript代码即可生成一个对话框.在一个主控元素,例如按钮,上设置data-toggle="modal",然后再设置data-targ ...
- 素数路(prime)
素数路(prime) 题目描述 已知一个四位的素数,要求每次修改其中的一位,并且要保证修改的结果还是一个素数,还不能出现前导零.你要找到一个修改数最少的方案,得到我们所需要的素数. 例如把1033变到 ...
- POj-3104 Drying 二分+贪心
题目大意:有n件湿的衣服,每件衣服都有相应的湿度,每分钟每件衣服的湿度减1(除了在烘干机里的衣服),现在有一个烘干机,烘干机一分钟可以让一件衣服的湿度降低k,问至少要花多少分钟才能使每件衣服的湿度为0 ...
- Dubbo阿里Alibaba开源的分布式服务框架
[获奖公布]"我的2016"主题征文活动 程序猿全指南,让[移动开发]更简单! [观点]移动原生App开发和HTML 5开发,你更看好哪个? 博客的神秘功能 D ...
- 获取一个gridcontrol的数据行数
((DataTable)gc_excel.DataSource).Rows.Count;
- Trim(',')的作用去除最有一个','
public bool XMLDataImport() { List<string> sqllist = new List<string>(); ...
- 从客户端检测到有潜在危险的 Reque
web.config里面加上<httpRuntime requestValidationMode="2.0" />如下<system.web><htt ...