本文主要介绍标题中5中集合的常规遍历方式
1、List的遍历方式(两种)
List<String> list = new ArrayList<>();
list.add("aa");
list.add("bb");
list.add("cc");
list.add("dd");
list.add("ee");
int size = list.size();
for (int i = 0; i < size; i++) {
System.out.println(list.get(i));
}
for (String str : list) {
System.out.println(str);
}
2、Map的遍历(四种方式):
Map<String, Integer> map = new HashMap<>();
map.put("aa", 1);
map.put("bb", 2);
map.put("cc", 3);
map.put("dd", 4);
map.put("ee", 5);
Set<Entry<String, Integer>> entrySet = map.entrySet();
// 第一种
for (Entry<String, Integer> entry : entrySet) {
System.out.println("key:" + entry.getKey() + " val:" + entry.getValue());
}
System.out.println("---------------------------");
// 第二种
Iterator<Entry<String, Integer>> iterator = entrySet.iterator();
while (iterator.hasNext()) {
Entry<String, Integer> next = iterator.next();
System.out.println("key:" + next.getKey() + " val:" + next.getValue());
}
System.out.println("---------------------------");
// 第三种
Set<String> set = map.keySet();
for (String key : set) {
Integer val = map.get(key);
System.out.println("key:" + key + " val:" + val);
}
System.out.println("---------------------------");
// 第四种(补充):对keys进行排序,实现map的有序输出
List<String> keys = new ArrayList<>(set);
Collections.sort(keys);
for (String key : keys) {
Integer val = map.get(key);
System.out.println("key:" + key " val:" + val);
}
3、Stack的遍历(2种)以及stack的pop和peek的区别
Stack<String> stack = new Stack<>();
stack.push("aa");
stack.push("bb");
stack.push("cc");
stack.push("dd");
stack.push("ee");
for (String str : stack) {
System.out.println(str);
}
System.out.println("------------------------");
Iterator<String> iterator = stack.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
System.out.println("after pop:" + stack.pop());
System.out.println("last count:" + stack.size());
System.out.println("after peek:" + stack.peek());
System.out.println("last count:" + stack.size());
运行结果:
aa
bb
cc
dd
ee
------------------------
aa
bb
cc
dd
ee
after pop:ee
last count:4
after peek:dd
last count:4
4、Queue的遍历方式(4种)以及poll()和peek()的区别:
Queue<String> queue = new ConcurrentLinkedQueue<>();// 线程安全
queue.add("aa");
queue.add("bb");
queue.add("cc");
queue.add("dd");
queue.add("ee");
for (String str : queue) {
System.out.println(str);
}
System.out.println("---------------------");
Iterator<String> iterator = queue.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
System.out.println("---------------------");
int size = queue.size();
for (int i = 0; i < size; i++) {
System.out.println(queue.poll() + " last count:" + queue.size());
}
System.out.println("----------队列中已经没有对象了-----------");
queue.add("aa");
queue.add("bb");
queue.add("cc");
queue.add("dd");
queue.add("ee");
for (int i = 0; i < size; i++) {
System.out.println(queue.peek() + " last count:" + queue.size());
}
运行结果:
aa
bb
cc
dd
ee
---------------------
aa
bb
cc
dd
ee
---------------------
aa last count:4
bb last count:3
cc last count:2
dd last count:1
ee last count:0
----------队列中已经没有对象了-----------
aa last count:5
aa last count:5
aa last count:5
aa last count:5
aa last count:5
5、Set的遍历(2种)
Set<String> set = new HashSet<>();
set.add("aa");
set.add("bb");
set.add("cc");
set.add("dd");
set.add("ee");
for (String str : set) {
System.out.println(str);
}
System.out.println("----------------------");
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}