- 浏览: 119964 次
- 性别:
- 来自: 深圳
文章分类
最新评论
Map(映射):Map的KeySet()方法会返回key的集合,因为Map的键不能重复,因此keySet()方法的返回类型是Set;而Map的值是可以重复的,因此values()方法的返回类型Collection,可以容纳重复的元素。
package com.test.array; import java.util.HashMap; public class HashMapTest { public static void main(String[] args) { HashMap map = new HashMap(); map.put("a", "zhangsan"); map.put("b", "lisi"); map.put("c", "wangwu"); map.put("a", "zhaoliu"); System.out.println(map); } }
打印出的结果是:
{a=zhaoliu, c=wangwu, b=lisi}
没打印出zhangsan,是因为键a的值被zhaoliu覆盖了。
如果从一个不存在的键中获取值,则会打印出null
String value = (String) map.get("s"); //s并不存在 System.out.println(value);
通过迭代key值取得value
package com.test.array; import java.util.HashMap; import java.util.Iterator; import java.util.Set; public class KeyIterTest { public static void main(String[] args) { HashMap map = new HashMap(); map.put("a", "aa"); map.put("b", "bb"); map.put("c", "cc"); map.put("d", "dd"); Set keySet = map.keySet(); for (Iterator iters = keySet.iterator(); iters.hasNext();) { String key = (String)iters.next(); String value = (String)map.get(key); System.out.println(key +"="+value); } } }
Map的entrySet() 方法返回一个Set集合,里面包含Map的键值对的对象。
Entry是HashMap的一个内部类。可以通过获取entry来取得HashMap的键与值。
package com.test.array; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class HashMapTest { public static void main(String[] args) { HashMap map = new HashMap(); map.put("a", "zhangsan"); map.put("b", "lisi"); map.put("c", "wangwu"); map.put("a", "zhaoliu"); Set set = map.entrySet(); for(Iterator iter = set.iterator();iter.hasNext();){ Map.Entry entry = (Map.Entry)iter.next(); String key = (String)entry.getKey(); String value = (String)entry.getValue(); System.out.println(key +" = "+value); } } }
TreeMap:TreeMap是对键进行排序。
3,使用Map生成随机数排序测试:
随机生成50个数字(整数),每个数字的范围是【10,50】,统计每个数字出现的次数以及出现次数最多的数字与它的个数,最后将每个数字及其出现次数打印出来。如果某个出现的次数是0,则不打印它。打印时按照数字的升序排列。
package com.test.array; import java.util.List; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.Map; import java.util.Random; import java.util.Set; import java.util.TreeMap; public class HashMapTest { public static void main(String[] args) { Random random = new Random(); Map map = new TreeMap(); for (int i = 0; i < 50; i++) { int number = random.nextInt(41) + 10; if (map.get(new Integer(number)) != null) { // 不是第一次出现,已经有值了 map.put(new Integer(number), ((Integer) map.get(new Integer( number))).intValue() + 1); } else { // 第一次出现,将其值设为1 map.put(new Integer(number), new Integer(1)); } } // 打印结果 格式为 "键=值" Set set = map.entrySet(); List list = new ArrayList(); // 打印出现次数最多的数字 Collection cols = map.values(); Integer maxNumber = (Integer) Collections.max(cols); for (Iterator iter = set.iterator(); iter.hasNext();) { Map.Entry entry = (Map.Entry) (iter.next()); Integer value = (Integer) entry.getValue(); if (maxNumber.intValue() == value.intValue()) { list.add(entry.getKey()); } System.out.println(entry.getKey() + " =" + entry.getValue()); } System.out.println("出现最多次数为: "+maxNumber.intValue()); System.out.print("这些数字分别是:"); for (int k = 0; k < list.size(); k++) { System.out.print(list.get(k)+" "); } } }
发表评论
-
深入分析 Java I/O 的工作机制
2012-09-01 01:11 757http://www.ibm.com/developerwor ... -
TreeSet小例
2012-08-18 09:34 742package com.test.collframewo ... -
JAVA LinkedList小例
2012-08-17 23:13 1533package com.test.collframework; ... -
HashMap原理及冲突之简谈
2012-08-16 06:39 654HashMap简析之-HashCode冲突的解 ... -
HashMap与Hashtable的区别
2012-08-16 00:08 718HashTable的应用非常广泛,HashMap是新框架中用来 ... -
JAVA基础1:面向对象
2011-08-21 18:19 641... -
JAVA集合类(5):HashMap与HashSet源码深度剖析
2011-08-18 23:51 1278查看 HashSet的源码会发现,HashSet是由HashM ... -
JAVA集合类(3):Set集合
2011-08-13 23:41 1014Eclipse提供了快捷重写equa ... -
JAVA集合类(2):JAVA集合类框架,各种List
2011-08-12 17:41 753ArrayList: 注意其toArray ... -
JAVA集合类(2):冒泡排序、二分查找
2011-08-10 23:56 2674以下各种排序都是使用数组实现的。 1,冒泡排序(Bub ... -
JAVA集合类(1):数组介绍及常用 API
2011-08-10 00:35 1370数组(Array):相同类型的数据的集合就叫数组。 如何定义 ... -
.Java异常
2011-06-07 22:38 676异常(Exception) 1. J ...
相关推荐
java.util 中的集合类包含 Java 中某些最常用的类。 最常用的集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List ...
Java 集合排序及java 集合类详解 Java 集合排序及java 集合类详解,Java里面最重要、最常用也就是集合那部分了,能够用好集合和理解好集合对于做Java程序的开发拥有无比的好处。本教程详细解释了关于Java中的集合是...
Java集合排序及java集合类详解,对list,set,map等java集合进行详细讲解
java.util 中的集合类包含 Java 中某些最常用的类。 最常用的集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象元素列表。 List 适用...
java集合类list-set-map.doc
集合类的框架为集合的实现者提供了大量的接口和抽象类,并对其中的某些机制给予了描述,例如,Iterator(迭代协议)。实现Comparable接口或Comparator接口,用户可以根据需要对集合中的元素进行排序。为了方便用户...
Java集合排序及java集合类详解(Collection、List、Map、Set).doc
Java集合类性能分析 Collection List Map Set
该文档主要详细总结了Java集合的相关知识,包括Collection和Map接口、Collection接口的子接口List和Set接口以及具体的实现类、存储原理等;Map接口的子接口HashMap、LinkedHashMap、TreeMap、Properties等
Java集合排序及java集合类详解(Collection、List、Map、Set)
易语言面相对象编程仿java集合 list, 以及map工具类 模块ec源码
JSP应用开发-Java集合类-Map接口.pptx
Java集合排序及java集合类详解(Collection、List、Map、Set
Java集合整体讲解,其中包含了Collection,Map,Iterator和一些工具类,以及集合整体大框架
Java集合排序及java集合类详解(Collection、List、Map、Set)
集合类Collection:集合层次中的根接口,JDK没有提供这个接口直接的实现类。 Set:不能包含重复的元素。SortedSet是一个按照升序排列元素的Set。 List:是一个有序的集合,可以包含重复的元素。提供了按索引访问的...
private static SortedMap, Integer> mapSortByKey(Map, Integer> unsort_map) { TreeMap, Integer> result = new TreeMap, Integer>() Object[] unsort_key = unsort_map.keySet().toArray(); Arrays.sort...
Java集合排序及java集合类详解(Collection、List、Map、Set).pdf