Iterator
迭代器iterator用法:
Java中Itreator功能比较简单,并且只能单向移动:
- 使用iterator()方法要求容器返回一个Iterator对象。第一次调用 Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是 java.lang.Iterable接口,被Collection继承。
- 使用next()方法获得序列中的下一个元素。
- 使用hasNext()方法检查序列中是否还有元素。
- 使用remove()方法将迭代器新返回的元素删除。
List
遍历循环List集合时,所用的方法:
List<String> list = new ArrayList<String>();
list.add("John");
list.add("Jenny");
list.add("Marry");
list.add("MrLi");
list.add("MrChen");
list.add("Wangwu");
System.out.println("for循环遍历的List集合顺序依次为:");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println("foreach循环遍历的List集合顺序依次为:");
for (String i : list) {
System.out.println(i);
}
System.out.println("iterator遍历循环的List集合顺序依次为:");
Iterator<String> iterator = list.listIterator();
while (iterator.hasNext()) {
System.out.println("list("+((ListIterator<String>) iterator).nextIndex()+"):"+iterator.next());
}
实例编译运行后的结果为:
for循环遍历的List集合顺序依次为:
John
Jenny
Marry
MrLi
MrChen
Wangwu
foreach循环遍历的List集合顺序依次为:
John
Jenny
Marry
MrLi
MrChen
Wangwu
iterator遍历循环的List集合顺序依次为:
list(0):John
list(1):Jenny
list(2):Marry
list(3):MrLi
list(4):MrChen
list(5):Wangwu
Set
遍历循环Set集合时,所使用的方法:
Set<String> set = new HashSet<String>();
set.add("John");
set.add("Jenny");
set.add("Marry");
set.add("MrLi");
set.add("MrChen");
set.add("Wangwu");
System.out.println("for循环遍历的Set集合顺序依次为:");
Object[] strs = set.toArray();
for (int i = 0; i < strs.length; i++) {
if (strs[i] instanceof String) {
System.out.println(strs[i]);
} else {
System.out.println("此Set集合存储的所有元素并不为String类型");
}
}
System.out.println("foreach循环遍历的Set集合顺序依次为:");
for (String s : set) {
System.out.println(s);
}
System.out.println("iterator遍历循环的Set集合顺序依次为:");
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
实例编译运行后的结果为:
for循环遍历的Set集合顺序依次为:
Wangwu
MrLi
John
MrChen
Jenny
Marry
foreach循环遍历的Set集合顺序依次为:
Wangwu
MrLi
John
MrChen
Jenny
Marry
iterator遍历循环的Set集合顺序依次为:
Wangwu
MrLi
John
MrChen
Jenny
Marry
Map
遍历循环Map集合时,所使用的方法:
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("John", 16);
map.put("Jenny", 17);
map.put("Marry", 13);
map.put("MrLi", 20);
map.put("MrChen", 18);
map.put("Wangwu", 19);
System.out.println("foreach循环遍历的Map集合顺序依次为:");
Set<String> set = map.keySet();
for (String s : set) {
System.out.println("map集合的key值为:" + s + ";value值为:" + map.get(s));
}
System.out.println("------------------------------------------------");
System.out.println("只获取Map集合中value的值:");
for (Integer i : map.values()) {
System.out.println("map集合中value的值为:" + i);
}
System.out.println("------------------------------------------------");
System.out.println("获取Map.Entry<String, Integer>,利用foreach循环遍历key和value:");
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println("map集合的key:" + entry.getKey() + ";value:" + entry.getValue());
}
System.out.println("------------------------------------------------");
System.out.println("iterator遍历循环的Set集合顺序依次为:");
Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Integer> entry = iterator.next();
System.out.println("map集合的key:" + entry.getKey() + ";value:" + entry.getValue());
}
实例编译运行后的结果为:
foreach循环遍历的Map集合顺序依次为:
map集合的key值为:Wangwu;value值为:19
map集合的key值为:MrLi;value值为:20
map集合的key值为:John;value值为:16
map集合的key值为:MrChen;value值为:18
map集合的key值为:Jenny;value值为:17
map集合的key值为:Marry;value值为:13
------------------------------------------------
只获取Map集合中value的值:
map集合中value的值为:19
map集合中value的值为:20
map集合中value的值为:16
map集合中value的值为:18
map集合中value的值为:17
map集合中value的值为:13
------------------------------------------------
获取Map.Entry<String, Integer>,利用foreach循环遍历key和value:
map集合的key:Wangwu;value:19
map集合的key:MrLi;value:20
map集合的key:John;value:16
map集合的key:MrChen;value:18
map集合的key:Jenny;value:17
map集合的key:Marry;value:13
------------------------------------------------
iterator遍历循环的Set集合顺序依次为:
map集合的key:Wangwu;value:19
map集合的key:MrLi;value:20
map集合的key:John;value:16
map集合的key:MrChen;value:18
map集合的key:Jenny;value:17
map集合的key:Marry;value:13
- 有待补充…