JAVA集合遍历方式
本人在学习集合之后只感觉一头雾水,都分不清几种集合的不同.只好花点时间汇总集合的遍历方式,在这个过程中不仅加深了对集合的印象,还弄明白了集合嵌套的方式…
以下是我对集遍历的总结,希望对读者有帮助.
//**************************************************************
****Collection 根接口
****
**** List集合遍历
**** (包含:ArrayList和LinkedList)
****************************************************************/
import java.util.ArrayList;
import java.util.Iterator;
public class Demo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("第一");
list.add("第二");
list.add("第三");
list.add("第五");
// 遍历一(增强for):
for (String str : list) { System.out.println(str); }
// 遍历二(迭代器):
Iterator<String> it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
// 遍历三(普通forfor):
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
// 遍历四(ListIterator正反遍历):
ListIterator<String> li = list.listIterator();
while (li.hasNext()) {
System.out.println(li.next());
}
//倒序遍历
while (li.hasPrevious()) {
System.out.println(li.previous());
}
}
}
//**************************************************************
****Collection 根接口
****
**** HashSet集合遍历
**** (包含:ArrayList和LinkedList)
****************************************************************/
import java.util.HashSet;
import java.util.Iterator;
public class Demo06 {
public static void main(String[] args) {
HashSet<String> set = new HashSet<String>();
set.add("第一");
set.add("第二");
set.add("第三");
set.add("第五");
// 遍历一(增强for):
for (String str : set) {
System.out.println(str);
}
// 遍历二(普通forfor):
Iterator<String> it = set.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}
//**************************************************************
****Map根接口
****
**** HashMap集合遍历
**** 双列集合
****************************************************************/
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class Demo06 {
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("T001", "第一");
map.put("T002", "第二");
map.put("T003", "第三");
map.put("T004", "第四");
// 通过键值找值(增强for)
Set<String> set = map.keySet();
for (String key : set) {
System.out.print(key);
System.out.println("---" + map.get(key));
}
// 通过键值找值
Set<String> key = map.keySet();
for (int i = 0; i < map.size(); i++) {
String[] arr = key.toArray(new String[map.size()]);
System.out.println(map.get(arr[i]));
}
// 直接提取所有值然后遍历
Collection<String> val = map.values();
for (String str : val) {
System.out.println(str);
}
// 遍历方法二
Set<Map.Entry<String, String>> set = map.entrySet();
for (Map.Entry<String, String> me : set) {
String key = me.getKey();
String val = me.getValue();
System.out.println(key + "--" + val);
}
// 遍历二 迭代器演示
Set<Map.Entry<String, String>> ent = map.entrySet();
// System.out.println(ent);
Iterator<Map.Entry<String, String>> lt = ent.iterator();
while (lt.hasNext()) {
Map.Entry<String, String> mapen = lt.next();
// System.out.println(mapen);
System.out.print(mapen.getKey());
System.out.println("--" + mapen.getValue());
}
}
}