Java中Map接口的遍历

package Test4;

import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import org.junit.Test;

public class MapBianLi {
/*
* 如何遍历Map
* Set keySet()-->遍历Key
* Collection values()-->遍历value
* Set entrySet()-->遍历键值对
* */
@Test
public void test1(){
Map map=new HashMap();

map.put("中国", 1949);
map.put("美国", 1768);
map.put("俄罗斯", 1500);
map.put("日本", 1000);

Set set=map.keySet();
for(Object o:set){
System.out.println(o);
}
}//遍历Map中所有的Key
@Test
public void test2(){
Map map=new HashMap();

map.put("中国", 1949);
map.put("美国", 1768);
map.put("俄罗斯", 1500);
map.put("日本", 1000);

Collection c=map.values();

Iterator i=c.iterator();
while(i.hasNext()){
System.out.println(i.next());
}
}//遍历Map中所有的value
@Test
public void test3(){
Map map=new HashMap();

map.put("中国", 1949);
map.put("美国", 1768);
map.put("俄罗斯", 1500);
map.put("日本", 1000);

Set set=map.keySet();
Iterator i=set.iterator();
while(i.hasNext()){
String str=(String)i.next();

注:此处若写成System.out.println(i.next()+"-->"+map.get(i.next()));      

输出结果:

俄罗斯-->1000
美国-->1949

原因:在一个输出语句中i.next()两次,指针向下西东两次
System.out.println(str+"-->"+map.get(str));
}
}//方式一:遍历所有的键值对
@Test
public void test4(){
Map map=new HashMap();

map.put("中国", 1949);
map.put("美国", 1768);
map.put("俄罗斯", 1500);
map.put("日本", 1000);

Set set=map.entrySet();//把Map中一对一对的键值对转化到Set接口中
for(Object o:set){
Map.Entry entry=(Map.Entry)o;

注:Entry是Map中的一个内部类,指一个键值对
System.out.println(entry.getKey()+"-->"+entry.getValue());
}
}//方式二:遍历所有的键值对
}

时间: 2024-10-25 08:54:00

Java中Map接口的遍历的相关文章

Java中map接口 遍历map

java集合框架用于存储数据,也被称为集合类 位于java.util包下 java.util包下常用接口和类 Collection和Map是Java集合框架的根接口 List集合是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问. Set集合是无序集合,集合中的元素不可以重复,访问集合中的元素只能根据元素本身来访问(也是不能集合里元素不允许重复的原因). Map集合中保存Key-value对形式的元素,访问时只能根据每项元素的key来访问其value. Map接口 Map

Java中Map集合的遍历方式

方法一:在for-each循环中使用entries来遍历 1 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); 2 3 for (Map.Entry<Integer, Integer> entry : map.entrySet()) { 4 5 System.out.println("Key = " + entry.getKey() + ", Value = "

Java中Map接口和其常用子类

一.Map接口常用方法 public V put(K key,V value):向集合中保存数据: public V get(Object key):根据key查找对应的value数据: public Set<K> keySet():取出全部的key,返回一个set集合: public Set<Map.Entry<K,V>> entrySet():将Map集合转化为set集合: 二.常用子类 1.public class HashMap<K,V> exten

java中map有哪些

java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复. Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的.HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;

java中Map,List与Set的区别

java中Map,List与Set的区别 目录(?)[+] Set,List,Map的区别 java集合的主要分为三种类型: Set(集) List(列表) Map(映射) 要深入理解集合首先要了解下我们熟悉的数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据. 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存放基本数据类型. 简单说下集合和数组的区别:(参考文章:

探究Java中Map类

Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象.       Map的接口       Map---实现Map       Map.Entry--Map的内部类,描述Map中的按键/数值对.       SortedMap---扩展Map,使按键保持升序排列           关于怎么使用,一般是选择Map的子类,而不直接用Map类.       下面以HashMap为例.       public     static     void     ma

Java集合Map接口与Map.Entry学习

Java集合Map接口与Map.Entry学习 Map接口不是Collection接口的继承.Map接口用于维护键/值对(key/value pairs).该接口描述了从不重复的键到值的映射. (1) 添加.删除操作: Object put(Object key, Object value): 将互相关联的一个关键字与一个值放入该映像.如果该关键字已经存在,那么与此关键字相关的新值将取代旧值.方法返回关键字的旧值,如果关键字原先并不存在,则返回null Object remove(Object

Java中Map相关的快速查找算法与唯一性(转载)

原文地址:http://blog.csdn.net/chuyuqing/article/details/19629229 在对<Set和hashCode()>的一篇原创文章写完后,由于对自己的一些论断产生了模糊和怀疑,因此又对Set进行了一些研究,形成本篇. 在Set的使用场景中,我们不外乎看中了她存储数据的唯一性,即不能存储重复值,这在某些应用场合下是很必要的一个特性.那么从更深一层来考虑,Set究竟如何使数据不重复的呢?从另一个层面来考虑,她又如何确保在验证数据是否重复过程中的快速性呢?假

java中list接口的用法

list为继承自collection接口的接口,list里存储的值的类型通过list<object>泛型来声明:存值时调用ArrayList类的add方法,删除时调用用remove方法.list的很多方法与set很相似,但在存储结构上有区别,set的存储特点为无序和互异,相反的,list的存储特点为有序和存异. package test_list; import java.util.ArrayList; import java.util.HashSet; import java.util.It