1.List的遍历方式
(1)方式一:使用iterator
Iterator iter = list.iterator();
while(iter.hasNext()) {
Object o = iter.next();
}
(2)方式二:使用增强for
for(Object o : list) {
System.out.println("o=" + o);
}
(3)方式三:使用普通for
for(int i=0; i<list.size(); i++) {
Object object = list.get(i);
System.out.println(object);
}
小结:可以使用迭代器、增强for循环、普通for循环
2.Set的遍历方式
(1)迭代器:
Set set = new HashSet();
Iterator iterator = set.iterator();
while(iterator.hashNext()){
Object obj = iterator.next();
System.out.println("obj= " + obj);
}
(2)增强for
for(Object o : set) {
System.out.println("o=" + o);
}
小结:Set 可以使用迭代器、增强for循环进行遍历。但不能使用索引的方式来遍历
3.Map的遍历方式
Map map = new HashMap();
(1)第一组:先取出所有的Key,通过Key取出对应的Value
Set keySet = map.keySet();
System.out.println("---第一种方式---");
for(Object key : keySet) {
System.out.println(key + "-" + map.get(key));
}
System.out.println("---第二种方式---");
Iterator iter = keySet.iterator();
while(iterator.hasNext()){
Object key = iterator.next();
System.out.println(key+"-"+map.get(key));
}
(2)第二组:把所有的values取出来
Map map = new HashMap(); Collection values = map.values(); System.out.println("增强for循环"); for (Object value : values) { System.out.println(value); } System.out.println("迭代器"); Iterator iterator = values.iterator(); while (iterator.hasNext()) { Object o = iterator.next(); System.out.println("o= " + o); }
(3)第三组:通过EntrySet来获取k-v
System.out.println("使用entrySet的for增强"); Set entrySet = map.entrySet(); for (Object o : entrySet) { Map.Entry set = (Map.Entry)entrySet; System.out.println(set.getKey() + "-" + set.getValue()); }
System.out.println("使用entrySet的迭代器"); Set entryset = map.entrySet(); Iterator iterator = entryset.iterator(); while (iterator.hasNext()) { Object obj = iterator.next(); Map.Entry entry = (Map.Entry) obj; System.out.println(entry.getKey() + "-" + entry.getValue()); }
小结:Map的遍历可以通过先获取key键的集合或者是value值的集合,然后再进行遍历,这样前者可以通过键值获取value值,后者可以直接获取value值。也可以这样做,先把map集合通过entrySet()方法转换成EntrySet集合,然后遍历,再把遍历出来的每一个对象强制类型转换成Map.Entry类型,这样强转的目的是使用该类型的getKey()与getValue()方法,来获取对象的k-v,不知道大家有没有理解。
4.Queue的遍历方式
(1)通过poll()方法依次拿出元素,特点:获取元素之后队列中的元素已经销毁
Queue<String> queue= new LinkedList<String>();
String item = null;
while ((item = queue.poll()) != null) {
System.out.println(item);
}
(2)增强for循环,特点:仅仅遍历了元素,并没有对队列中的元素做任何改变
for(String q : queue) {
System.out.println(q);
}
(3)迭代器遍历
Iterator<String> iter = qeque.iterator();
while(iter.hasNext()) {
String s = iter.next();
System.out.println(s);
}
5.Deque的遍历方式
(1)while循环遍历
Queue<String> qeque = new LinkedList<String>();
String item = null;
while ((item = deque.pollLast()) != null) {
System.out.println(item);
}
(2)增强for循环
for(String q : deque) {
System.out.println(q);
}
(2)迭代器
Iterator<String> iter = deque.iterator();
while(iter.hasNext()) {
String s = iter.next();
System.out.println(s);
}
6.Stack遍历方式
Stack<String> stack = new Stack<String>();
(1)while循环遍历
System.out.println("---pop()循环取出元素---");
while(!stack.isEmpty()) {
System.out.println(stack.pop());
}
(2)增强for循环遍历
for(String s : stack) {
System.out.println(s);
}
(3)迭代器
Iterator<String> iter = stack.iterator();
while(iter.hasNext()) {
String s = iter.next();
System.out.println(s);
}