Java中List Set Map集合的遍历

创建Student实体

package com.smic.test;

public class Student {
private String name = null;
private Integer age = null;

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;
}

public Student() {
super();
// TODO Auto-generated constructor stub
}

public Student(String name, Integer age) {
super();
this.name = name;
this.age = age;
}

}

一、List集合的遍历

Student s1=new Student("卫庄", 32);
Student s2=new Student("盖聂", 35);
Student s3=new Student("黑白玄翦", 36);

List<Student> l=new ArrayList<Student>();
l.add(s1);
l.add(s2);
l.add(s3);

(1)for循环遍历

for (int i = 0; i < l.size(); i++) {
  System.out.println(l.get(i).getName());
 }

(2)foreach循环遍历

for (Student stu : l) {
   System.out.println(stu.getName()+"\t"+stu.getAge());
 }

(3)Iterator迭代器遍历(List,Set,Map都通用)

Iterator<Student> is=l.iterator();
  while(is.hasNext()){
  Student s=is.next();
 //错误书写,只能用一次is.next()迭代器
//    System.out.println(is.next().getName()+"\t"+is.next().getAge());
   System.out.println(s.getName()+"\t"+s.getAge());
  }

(4)上面3种均可以不适用泛型来遍历,只是需要强转,不仅如此,后面的Set集合,Map集合同理

Iterator i=l.iterator()
  while(i.hasNext()){
  Student s=(Student)i.next();//强转
  System.out.println(s.getName()+"\t"+s.getAge());
}

(5)不常用

for(Iterator i=l.iterator();i.hasNext();){
  Student s=(Student)i.next();
  System.out.println(s.getName()+"\t"+s.getAge());
}

二、Set集合

Student s1=new Student("卫庄", 32);
Student s2=new Student("盖聂", 35);
Student s3=new Student("黑白玄翦", 36);

Set<Student> s=new HashSet<Student>();
s.add(s1);
s.add(s2);
s.add(s3);

(1)使用Iterator泛型来遍历

Iterator<Student> is=s.iterator();
  while(is.hasNext()){
 Student stu=is.next();
   System.out.println(stu.getName()+"\t"+stu.getAge());
 }

(2)适用foreach遍历

for (Student stu : s) {
  System.out.println(stu.getName()+"\t"+stu.getAge());
}

三、Map集合

Student s1=new Student("卫庄", 32);
Student s2=new Student("盖聂", 35);
Student s3=new Student("黑白玄翦", 36);

Map<String,Student> ms=new HashMap<String,Student>();
ms.put("stu1", s1);
ms.put("stu2", s2);
ms.put("stu3", s3);

(1)Iterator遍历  key值要不一样  不然拿到一个Student

Iterator<Map.Entry<String, Student>> it=ms.entrySet().iterator();//Map.可以不写
   while(it.hasNext()){
   Map.Entry<String, Student> stu=it.next();
   System.out.println(stu.getKey()+"\t"+stu.getValue().getName());
  }

(2)先拿到key值再拿取对应的value值

Set<String> set=ms.keySet();
  for (String str : set) {
  System.out.println(str+"\t"+ms.get(str).getName());
  }

(3)对于数据量大的Map集合遍历

for(Entry<String, Student>entry:ms.entrySet()){
   System.out.println(entry.getKey()+"\t"+entry.getValue().getName());
  }

(4)只遍历Map的值

  Collection<Student> col=ms.values();
  for (Student stu : col) {
     System.out.println(stu.getName());
}

四、集合嵌套

(1)List<Map<String,Student>>

Student s1=new Student("卫庄", 32);
Student s2=new Student("盖聂", 35);
Student s3=new Student("黑白玄翦", 36);

Map<String,Student> ms=new HashMap<String,Student>();
ms.put("stu1", s1);

ms.put("stu2", s2);
ms.put("stu3", s3);

List<Map<String,Student>> list=new ArrayList<Map<String,Student>>();
list.add(ms);

------------------------------------------------------------------------------------------------------------------

for (int i = 0; i < list.size(); i++) {
Map<String,Student> map=list.get(i);
Set<String> set=map.keySet();
for (String str : set) {
System.out.println(str+"\t"+map.get(str).getName());
}
}

------------------------------------------------------或者等等-------------------------------------------------

for (int i = 0; i < list.size(); i++) {
  Map<String,Student> map=list.get(i);

  for(Entry<String, Student> entry:map.entrySet()){
  System.out.println(entry.getKey()+"\t"+entry.getValue().getName());
}

}

原文地址:https://www.cnblogs.com/xiaohu666/p/10023340.html

时间: 2024-10-29 19:09:34

Java中List Set Map集合的遍历的相关文章

Java基础知识强化之集合框架笔记52:Map集合之Map集合的遍历 键找值

1. Map集合的遍历  Map -- 夫妻对 思路:  A:把所有的丈夫给集中起来.  B:遍历丈夫的集合,获取得到每一个丈夫.  C:让丈夫去找自己的妻子.  转换:  A:获取所有的键  B:遍历键的集合,获取得到每一个键  C:根据键去找值 2. 代码示例: 1 package cn.itcast_01; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 import java.util.Set; 6 7 public cla

Java基础知识强化之集合框架笔记53:Map集合之Map集合的遍历 键值对对象找键和值

1. Map集合的遍历(键值对对象找键和值) Map -- 夫妻对  思路:  A: 获取所有结婚证的集合  B: 遍历结婚证的集合,得到每一个结婚证  C: 根据结婚证获取丈夫和妻子 转换:  A: 获取所有键值对对象的集合  B: 遍历键值对对象的集合,得到每一个键值对对象  C: 根据键值对对象获取键和值 2. 代码示例: 1 package cn.itcast_01; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 impo

Android(java)学习笔记105:Map集合的遍历之键值对对象找键和值

1 package cn.itcast_01; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 import java.util.Set; 6 7 /* 8 * Map集合的遍历. 9 * Map -- 夫妻对 10 * 11 * 思路: 12 * A:获取所有结婚证的集合 13 * B:遍历结婚证的集合,得到每一个结婚证 14 * C:根据结婚证获取丈夫和妻子 15 * 16 * 转换: 17 * A:获取所有键值对对象的集合 1

Android(java)学习笔记104:Map集合的遍历之键找值

1 package cn.itcast_01; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 import java.util.Set; 6 7 /* 8 * Map集合的遍历. 9 * Map -- 夫妻对 10 * 思路: 11 * A:把所有的丈夫给集中起来. 12 * B:遍历丈夫的集合,获取得到每一个丈夫. 13 * C:让丈夫去找自己的妻子. 14 * 15 * 转换: 16 * A:获取所有的键 17 * B:遍历键

JAVA中List、Map、Set的区别与选用

类层次关系如下: Collection ├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap └WeakHashMap 下面来分别介绍 Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些 Collection允许相同的元素而另一些不行.一些能排序而另一些不行.Java SDK不提供直接继承自Col

java中List、Map、Set、Stack、Queue、Collections等的使用

java中List.Map.Set.Stack.Queue.Collections等的使用 List 创建方法: List<String> list=new ArrayList<>(); add(val) : 添加元素. get(index) : 获取元素. remove(index) : 删除元素. remove(Object o) : 按照元素内容删除 {eg:list.add("marry") ; list.remove(0)==list.remove(&

Java中关于HashMap的使用和遍历(转)

Java中关于HashMap的使用和遍历 分类: 算法与数据结构2011-10-19 10:53 5345人阅读 评论(0) 收藏 举报 hashmapjavastringobjectiteratorlist 1:使用HashMap的一个简单例子 [java] view plaincopy package com.pb.collection; import java.util.HashMap; import java.util.Iterator; import java.util.Set; im

Java中的容器(集合)之HashMap源码解析

1.HashMap源码解析(JDK8) 基础原理: 对比上一篇<Java中的容器(集合)之ArrayList源码解析>而言,本篇只解析HashMap常用的核心方法的源码. HashMap是一个以键值对存储的容器. hashMap底层实现为数组+链表+红黑树(链表超过8时转为红黑树,JDK7为数组+链表). HashMap会根据key的hashCode得到对应的hash值,再去数组中找寻对应的数组位置(下标). hash方法如下: static final int hash(Object key

关于Map集合的遍历总结

Map集合的遍历经常遇到,今天在这里总结一下Map集合遍历的几种方式: 1 public static void main(String[] args){ 2 Map<String,String> map=new HashMap<String,String>(); 3 map.put("1","张三"); 4 map.put("2","李四"); 5 map.put("3",&quo