一、Map的遍历
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
* Map的遍历,这个遍历比较特殊,有技巧
*
* @author leizhimin 2009-7-22 15:15:34
*/
public class TestMap {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("1", "a");
map.put("2", "b");
map.put("3", "c");
//最简洁、最通用的遍历方式
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + " = " + entry.getValue());
}
//Java5之前的比较简洁的便利方式1
System.out.println("----1----");
for (Iterator<Map.Entry<String, String>> it = map.entrySet().iterator(); it.hasNext();) {
Map.Entry<String, String> entry = it.next();
System.out.println(entry.getKey() + " = " + entry.getValue());
}
//Java5之前的比较简洁的便利方式2
System.out.println("----2----");
for (Iterator<String> it = map.keySet().iterator(); it.hasNext();) {
String key = it.next();
System.out.println(key + " = " + map.get(key));
}
}
}
二、Queue的遍历
import java.util.Queue;
import java.util.concurrent.LinkedBlockingQueue;
/**
* 队列的遍历
*
* @author leizhimin 2009-7-22 15:05:14
*/
public class TestQueue {
public static void main(String[] args) {
Queue<Integer> q = new LinkedBlockingQueue<Integer>();
//初始化队列
for (int i = 0; i < 5; i++) {
q.offer(i);
}
System.out.println("-------1-----");
//集合方式遍历,元素不会被移除
for (Integer x : q) {
System.out.println(x);
}
System.out.println("-------2-----");
//队列方式遍历,元素逐个被移除
while (q.peek() != null) {
System.out.println(q.poll());
}
}
}
三、Stack的遍历
import java.util.Stack;
/**
* 栈的遍历
*
* @author leizhimin 2009-7-22 14:55:20
*/
public class TestStack {
public static void main(String[] args) {
Stack<Integer> s = new Stack<Integer>();
for (int i = 0; i < 10; i++) {
s.push(i);
}
//集合遍历方式
for (Integer x : s) {
System.out.println(x);
}
System.out.println("------1-----");
//栈弹出遍历方式
// while (s.peek()!=null) { //不健壮的判断方式,容易抛异常,正确写法是下面的
while (!s.empty()) {
System.out.println(s.pop());
}
System.out.println("------2-----");
//错误的遍历方式
// for (Integer x : s) {
// System.out.println(s.pop());
// }
}
}
在遍历集合时候,优先考虑使用foreach语句来做,这样代码更简洁些。
分享到:
相关推荐
Java集合主要包括两大接口:`Collection` 和 `Map`。 #### Collection接口: - **特点**:它代表一个元素列表,可以包含重复的元素,并且没有固定的顺序。 - **主要实现类**: - **List**:有序集合,允许重复元素...
Java集合框架主要包括`Collection`、`Set`、`List`、`Queue`、`Deque`、`Map`等接口和它们的具体实现类如`ArrayList`、`LinkedList`、`Vector`、`Stack`、`HashSet`、`HashMap`等。下面将对这些核心概念和类进行深入...
在Java编程语言中,集合框架是处理对象组的重要工具,它提供了一种高效...总的来说,Java集合框架提供了丰富的选择,满足了各种数据存储和操作的需求。通过深入理解和熟练应用,开发者可以写出更加高效、可维护的代码。
Java集合框架的基础接口有Collection、Set、List、Map、Queue、Dequeue、SortedSet、SortedMap和ListIterator等。 5. 为何Collection不从Cloneable和Serializable接口继承? Collection接口指定一组对象,对象即为...
Java集合框架主要包括两大接口:Collection和Map。Collection接口是所有单值容器的超接口,它的子接口有List(有序、可重复元素,如ArrayList和LinkedList)和Set(无序、不可重复元素,如HashSet和TreeSet)。List...
除了基本的List、Set和Map,Java集合框架还包括了一些其他实现,如Queue(队列)、Deque(双端队列)、Stack(栈)等,这些接口和类提供了更丰富的数据结构和操作。 在实际开发中,选择合适的集合类和操作方式非常...
Java集合框架主要包括两种类型的容器:集合(Collection)和映射(Map)。其中集合用于存储一组不重复的对象,而映射则用于存储键值对。 #### 二、集合(Collection) Java中的集合框架主要包括以下几种类型的集合...
Java集合框架是Java编程语言中的一个核心特性,它为存储、管理和操作对象提供了一套统一的接口和实现。这个框架包括各种接口、类和算法,使得开发者能够更加高效地处理对象集合,而无需关注底层数据结构的实现细节。...
为了方便遍历集合中的元素,Java集合框架提供了迭代器接口`Iterator`,它定义了遍历集合的基本方法:`hasNext()`判断是否还有下一个元素;`next()`返回集合中的下一个元素;`remove()`移除当前的元素。此外,对于`...
7. **集合**:Java集合框架是处理对象组的工具,包括接口(如List、Set、Queue)和实现这些接口的类(如ArrayList、HashSet、LinkedList等)。集合框架允许我们高效地存储、检索和操作对象,是Java编程中的核心部分...
Java集合框架是Java编程语言中一个非常重要的组成部分,它为数据存储、管理和操作提供了丰富的类库。本章将深入探讨Java集合框架的核心概念、接口和类,以及它们在实际编程中的应用。 首先,集合框架的基础是接口,...
4. **Iterator和Enumeration**:`Iterator`是Java集合框架中用于遍历Collection的主要接口,而`Enumeration`是旧的迭代方式,主要用于`Hashtable`、`Vector`和`Stack`。`ListIterator`是专为List设计的迭代器,支持...
Java集合框架还包含了Queue(队列)、Deque(双端队列)、Stack(栈)等接口和实现,例如LinkedList可以作为双端队列使用,ArrayDeque作为高效栈和队列,PriorityQueue实现了优先队列,能根据元素的优先级进行出队。...
### 超全Java集合框架讲解 #### 集合框架总览 Java集合框架是Java编程语言中处理数据结构的基础。它为开发者提供了一系列高度优化的数据存储与操作方法,使得开发者可以更加专注于业务逻辑而无需担心底层实现细节...
本文将深入探讨图的邻接表存储方式以及如何用Java进行遍历。 一、邻接表的概念 邻接表是图的一种常见存储方式,它为每个顶点维护一个列表,列表中包含了与该顶点相连的所有边。相比于邻接矩阵,邻接表在处理稀疏图...
### Java集合类详解 #### 一、集合框架概述 Java集合框架是Java平台的一个核心特性,为开发人员提供了丰富的数据结构实现。集合框架主要包括两大接口:`Collection` 和 `Map`。`Collection` 用于存储单个对象的...