1 package com.pb.collection; 2 3 import java.util.ArrayList; 4 import java.util.HashMap; 5 import java.util.Iterator; 6 import java.util.List; 7 import java.util.Map; 8 import java.util.Scanner; 9 import java.util.Set; 10 11 public class AssignmentTest { 12 public static void main(String args[]) 13 { 14 //定义一个List<>规定他的类型是HashMap<String,Object>,实现的ArrayList这个类 15 List<HashMap<String,Object>> list=new ArrayList<HashMap<String,Object>>(); 16 //从控制台输入东西 17 Scanner in=new Scanner(System.in); 18 //提示语句 19 System.out.println("输入y或者n选择,y就是表示开始/继续,n表示退出或者结束"); 20 //while循环.in有一个next()方法 21 while("y".equals(in.next())){ 22 /*** 23 * 这里也可以写成 24 * HashMap<String,Object> map=new HashMap<String,Object>(); 25 */ 26 27 Map<String,Object> map=new HashMap<String,Object>(); 28 System.out.println("请输入姓名"); 29 map.put("name", in.next()); 30 System.out.println("请输入年龄"); 31 map.put("age", in.next()); 32 System.out.println("请输入性别boy or girl"); 33 map.put("sex", in.next()); 34 list.add((HashMap<String,Object>)map); 35 //list.add(map); //对应上面另外一种写法 36 System.out.println("输入y继续或输入N结束");//提示是否继续进行循环 37 } 38 Iterator<HashMap<String,Object>> it1=list.iterator();//定义一个遍历里。list型也有iterator()这个方法可以直接使用 39 /*** 40 * 第一种方式 41 */ 42 /*while(it1.hasNext()) 43 { 44 45 *//*** 46 * 因为list里面传出来的值是HashMap<String,Object>,所以这里需要定义成HashMap<String,Object>, 47 * 我定义成String跟object都报错了 48 * 49 *//* 50 HashMap<String,Object> key=it1.next(); 51 System.out.println(key.get("name"));//HashMap<String,Object> 有get()这个方法。通过传进去一个key去获取一个value 52 System.out.println(key.get("age")); 53 System.out.println(key.get("sex")); 54 }*/ 55 /*** 56 * 57 * 第二种方式 58 */ 59 for(HashMap<String,Object> list1:list){ 60 Set<String> set=list1.keySet(); 61 /*System.out.println(list1.get("name")); 62 System.out.println(list1.get("age")); 63 System.out.println(list1.get("sex"));*/ 64 for(String set1:set){ 65 //这里的list1是Hash<String,Object>,所有list1.get(key)来获取他的value 66 System.out.println(list1.get(set1)); 67 } 68 } 69 } 70 71 }
运行结果: