看完这篇文章,妈妈再也不用担心我不会集合的遍历了!!!包含了List,Queue,Set,Map等集合的遍历,整理一下,以作备忘!
1.集合的映射结构图
2.示例代码
package day15;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.Vector;
/*
* 集合的遍历:
* 遍历的方法主要有三种:
* 1.for循环遍历;2.foreach循环遍历;3.使用迭代器中的iterator()方法遍历
* 这又跟集合的种类不同而有所区别,如,Map接口定义的集合又称为查找表,用于存储"key-value"映射对
*/
public class ColAndMap {
public static void main(String[] args) {
/*
* List集合遍历; 具体实现类有 ArrayList; LinkedList;Vector
*/
// ArrayList
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
list.add("f");
System.out.println(list);// [a, b, c, d, e, f]
// 1.for循环遍历
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i) + ";");// a;b;c;d;e;f; list.get(int
// index) 根据下标获得列表中指定位置的元素
}
System.out.println();
// 2.foreach遍历
for (String str : list) {
System.out.print(str + ";"); // a;b;c;d;e;f;
}
// 3.迭代器的iterator()方法遍历
Iterator<String> it = list.iterator();
while (it.hasNext()) { // boolean:haxNext()是否还有元素可以迭代
String s1 = it.next(); // 如果hasNext()返回true,则指向下一个迭代的元素
System.out.print(s1 + ";");
}
System.out.println("----------------------");
// LinkedList
List<String> lkList = new LinkedList<String>();
lkList.add("a");
lkList.add("b");
lkList.add("c");
lkList.add("d");
lkList.add("e");
lkList.add("f");
System.out.println(lkList);// [a, b, c, d, e, f]
// 1.for遍历
for (int i = 0; i < lkList.size(); i++) {
System.out.print(lkList.get(i) + ";"); // a;b;c;d;e;f;
}
System.out.println();
// 2.foreach遍历
for (String str : lkList) {
System.out.print(str + ";"); // a;b;c;d;e;f;
}
System.out.println();
// iterator()方法遍历
Iterator<String> lit = lkList.iterator();
while (lit.hasNext()) {
String str = lit.next();
System.out.print(str + ";"); // a;b;c;d;e;f;
}
System.out.println();
System.out.println("--------------------------");
// Vector
List<String> vector = new Vector<String>();
vector.add("a");
vector.add("b");
vector.add("c");
vector.add("d");
vector.add("e");
System.out.println(vector);// [a, b, c, d, e]
// 1.for遍历
for (int i = 0; i < vector.size(); i++) {
System.out.print(vector.get(i) + ";"); //
}
System.out.println();
// 2.foreach遍历
for (String str : vector) {
System.out.print(str + ";");
}
System.out.println();
// iterator遍历
Iterator<String> vit = vector.iterator();
while (vit.hasNext()) {
String str = vit.next();
System.out.print(str + ";");
}
System.out.println();
System.out.println("--------------------");
/*
* Set接口的集合遍历
*/
// HashSet遍历
Set<String> set = new HashSet<String>();
set.add("a");
set.add("b");
set.add("c");
set.add("d");
set.add("e");
System.out.println(set);// [d, e, b, c, a]
// Set集合存放不重复的元素,其中的元素不能和有顺序的下标对应,因此无法从集合中取出特定的元素,遍历只能通过iterator()方法遍历
Iterator<String> hsit = set.iterator();
while(hsit.hasNext()){
System.out.print(hsit.next()+";"); //d;e;b;c;a;
}
System.out.println();
//TreeSet 遍历
Set<String> trset = new TreeSet<String>();
trset.add("b");
trset.add("a");
trset.add("d");
trset.add("e");
trset.add("c");
System.out.println(trset); //[a, b, c, d, e]
Iterator<String> tit = trset.iterator();
while(tit.hasNext()){
System.out.print(tit.next()+";"); //a;b;c;d;e;
}
System.out.println();
System.out.println("------Map集合的遍历-------");
/**
* Map 集合的遍历
*/
Map<Integer,String> map = new HashMap<Integer,String>();
//Map集合存放的元素键值不能重复,如果键值重复,会用后添加的元素的value值覆盖以前的value值
map.put(2, "a");
map.put(1, "c");
map.put(8, "b");
map.put(4, "d");
map.put(5, "e");
System.out.println(map); //{1=c, 2=a, 4=d, 5=e, 8=b}
Set<Entry<Integer,String>> mset =map.entrySet();
Iterator<Entry<Integer,String>> mit = mset.iterator();
while(mit.hasNext()){
System.out.print(mit.next()+";"); //1=c;2=a;4=d;5=e;8=b;
}
System.out.println();
System.out.println("------TreeMap遍历-------");
Map<Integer,String> trmap = new TreeMap<Integer,String>();
//Map集合存放的元素键值不能重复,如果键值重复,会用后添加的元素的value值覆盖以前的value值
trmap.put(2, "a");
trmap.put(1, "c");
trmap.put(8, "b");
trmap.put(4, "d");
trmap.put(5, "e");
System.out.println(trmap); //{1=c, 2=a, 4=d, 5=e, 8=b}
Set<Entry<Integer,String>> tset =map.entrySet();
Iterator<Entry<Integer,String>> trit = tset.iterator();
while(trit.hasNext()){
System.out.print(trit.next()+";"); //1=c;2=a;4=d;5=e;8=b;
}
}
}