HashMap的遍历方式
package com.hpe.map;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.*;
import java.util.TreeMap;
/**
* map接口
* 1、存放key-value数据
* key:不可以重复(底层使用的set)
* value:可以重复的。底层使用的collection接口。
* 2、实现类:
* HashMap
* LinkedHashMap
* TreeMap
* HashTale (不在使用)线程安全的容器
* Properties子类,做键值对文件读取。
* 3、常用方法;
* put(key,value)
* get(key);返回Object
* size();
*
* keySet(); 返回一个 Set容器,含义:获取所有的key。
* values();
*
* @author Administrator
*
*/
public class Demo2 {
public static void main(String[] args) {
Map<Integer,String> map = new HashMap<Integer,String>();
for(int i = 0;i < 10;i ++) {
map.put(i, "zhang"+i);
}
// 1、遍历方式。keyset
Set<Integer> keySet = map.keySet();
for (Integer integer : keySet) {
String value = map.get(integer);
System.out.println(value);
}
System.out.println("====================================");
// 2、遍历map 。 获取所有values.
Collection<Object> values = Collections.singleton(map.values());
Iterator<Object> iterator = values.iterator();
while(iterator.hasNext()) {
Object v = iterator.next();
System.out.println(v);
}
System.out.println("==========================");
// 3、entrySet遍历map,把map中每一个键值对封装到Set<Entry>
Set<Entry<Integer, String>> entrySet = map.entrySet();
for (Entry<Integer, String> entry : entrySet) {
Integer key = entry.getKey(); // 获取key的方法
Object value = entry.getValue();// 获取value的方法
System.out.println(value);
}
System.out.println("=================================");
//map 特性。 通常的使用情况。
Person p1 = new Person();
p1.setAge(20);
p1.setName("zhangsan");
// 实体类 ===》 map容器
Map<String,Object> perMap = new HashMap<String,Object>();
perMap.put("age", 20); // key="age" key2= "name"
perMap.put("name","zhangsan");
// 4、遍历map 。 get(提前得知的key)
int age = (Integer)perMap.get("age");
String name = (String)perMap.get("name");
System.out.println(age);
System.out.println(name);
}
}
Person类
package com.hpe.map;
public class Person {//implements Comparable<Person>{
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
结果:
zhang0
zhang1
zhang2
zhang3
zhang4
zhang5
zhang6
zhang7
zhang8
zhang9
====================================
[zhang0, zhang1, zhang2, zhang3, zhang4, zhang5, zhang6, zhang7, zhang8, zhang9]
=====================================
zhang0
zhang1
zhang2
zhang3
zhang4
zhang5
zhang6
zhang7
zhang8
zhang9
=================================
20
zhangsan