遍历HashMap和ArrayList

一、遍历HashMap

1、第一种方式 :keySet()得到所有键的集合存储在set中,存入set集合,set有迭代器,使用迭代器每次得到一个键,根据键获取值。

Map map1=new HashMap();

map1.put("04", new User("张一","111",18));
map1.put("05", new User("张二","222",19));
map1.put("06", new User("张三","333",20));

Set keys=map1.keySet();
Iterator ite=keys.iterator();	//获得key的迭代器

while(ite.hasNext()){
 String key=ite.next();	//迭代器是key的迭代器
 User user=map1.get(key);
 System.out.println(key+"---->"+user);
}

2、第一种方式使用增强for循环,不建议使用。

Map Usermap1=new HashMap();

Usermap1.put("1", new User("张一","111",18));
Usermap1.put("2", new User("张二","222",19));
Usermap1.put("3", new User("张三","333",20));
		
for(String str:Usermap1.keySet()){
  String key=str;
  User user=Usermap1.get(key);
  System.out.println(key+"------------>"+user);
  }
3、entrySet()得到每个键值对应的映射关系(Map.Entry)类型的值存入set集合,set迭代器每次迭代出来一个映射关系类型的值,从这个映射关系中即可以得到键,也可以获得值。

Map map2=new HashMap();

map2.put("07", new User("张一","111",18));
map2.put("08", new User("张二","222",19));
map2.put("09", new User("张三","333",20));
		
Set> entry=map2.entrySet();//获得Map.Entry的迭代器
Iterator> ite2=entry.iterator();

while(ite2.hasNext()){
  Map.Entry en=ite2.next();
  String key=en.getKey();
  User user =en.getValue();
  System.out.println(key+"-->"+user);
}
4、第三种方式使用增强for循环,建议使用。
Map Usermap2=new HashMap();

Usermap2.put("01", new User("张一","111",18));
Usermap2.put("02", new User("张二","222",19));
Usermap2.put("03", new User("张三","333",20));
		
for(Map.Entry en:Usermap2.entrySet()){
  String key=en.getKey();
  User user=en.getValue();
  System.out.println(key+"-------->"+user);
}
二、遍历ArrayList

list的遍历比较简单,此处从简。

@Test
public void test2(){
		
List list=new ArrayList();
list.add("王一");
list.add("王二");
list.add("王三");
		
//直接输出
System.out.println(list);//[王一, 王二, 王三]
//集合转数组输出
Object arr[]=list.toArray();
 for(int i=0;i ite =list.iterator();
while(ite.hasNext()){
 System.out.println(ite.next());//王一  王二	  王三
}
//for循环输出
for(int i=0;i list2=new ArrayList();
 list2.add(new User("王四","444",18));
 list2.add(new User("王五","555",19));
 list2.add(new User("王六","666",20));
		
System.out.println(list2);
		
for(int i=0;i




你可能感兴趣的:(java基础代码整理,集合操作)