遍历HashMap和ArrayList

来源:互联网 发布:男士 护肤品牌 知乎 编辑:程序博客网 时间:2024/06/06 06:19

一、遍历HashMap

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

Map<String,User> 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<String> keys=map1.keySet();Iterator<String> 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<String,User> 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<String, V>)类型的值存入set集合,set迭代器每次迭代出来一个映射关系类型的值,从这个映射关系中即可以得到键,也可以获得值。

Map<String,User> 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<Map.Entry<String, User>> entry=map2.entrySet();//获得Map.Entry<String,User>的迭代器Iterator<Map.Entry<String, User>> ite2=entry.iterator();while(ite2.hasNext()){  Map.Entry<String, User> en=ite2.next();  String key=en.getKey();  User user =en.getValue();  System.out.println(key+"-->"+user);}
4、第三种方式使用增强for循环,建议使用。
Map<String,User> 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<String, User> en:Usermap2.entrySet()){  String key=en.getKey();  User user=en.getValue();  System.out.println(key+"-------->"+user);}
二、遍历ArrayList

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

@Testpublic void test2(){List<String> list=new ArrayList<String>();list.add("王一");list.add("王二");list.add("王三");//直接输出System.out.println(list);//[王一, 王二, 王三]//集合转数组输出Object arr[]=list.toArray(); for(int i=0;i<arr.length;i++){ System.out.println(arr[i]);//王一  王二  王三}//使用迭代器输出Iterator<String> ite =list.iterator();while(ite.hasNext()){ System.out.println(ite.next());//王一  王二  王三}//for循环输出for(int i=0;i<list.size();i++){ Object obj=list.get(i); System.out.println(obj);//王一  王二  王三}//使用remove方法while(!list.isEmpty()){ System.out.println(list.remove(0));//王一  王二  王三} System.out.println(list.size());//0List<User> list2=new ArrayList<User>(); 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<list2.size();i++){ Object obj=list2.get(i); System.out.println(obj);//王一  王二  王三  }}




0 0
原创粉丝点击