文章目录
- Iterator
- List遍历方式:
- 第一种:
- 第二种:
- 第三种:
- 第四种:
- Map集合
- 1.keySet()
- 2.entrySet()
- 3.values()
Iterator
- 刚创建完Iterator对象时,指针其实指向的是第一个元素的上方,即一个 空
- hasNext():没有指针下移操作,只是判断是否存在下一个元素
- next():指针下移,然后返回该指针所指向的元素
- remove():删除当前指针所指向的元素,一般和next方法一起用,这时候的作用就是删除next方法返回的元素
while(iterator.hasNext() {
Object item = iterator.next();
iterator.remove(); //即删除item
......
}
List遍历方式:
第一种:
for(Iterator iterator = list.iterator();iterator.hasNext();){
int i = (Integer) iterator.next();
System.out.println(i);
}
第二种:
Iterator iterator = list.iterator();
while(iterator.hasNext()){
int i = (Integer) iterator.next();
System.out.println(i);
}
第三种:
for (Object object : list) {
System.out.println(object);
}
第四种:
for(int i = 0 ;i<list.size();i++) {
int j= (Integer) list.get(i);
System.out.println(j);
}
Map集合
Map集合没有迭代器(iterator()),遍历集合中的元素可以用以下三种方法:
Map<String, String> map = new HashMap<>();
map.put("张三", "123456");
map.put("李四", "456321");
map.put("王五", "741852");
map.put("赵六", "963321");
1.keySet()
将map中的key的部分, 单独取出, 成为set;
遍历这个set,拿到相应的value值
/*实现步骤:
1.使用Map集合中的keySet()方法,把Map集合所有的key取出来存储到一个Set集合中
2.遍历set集合,获取Map中的每一个key--遍历set集合可以使用迭代器或者forEach();
3.通过Map集合中的方法get(key),通过key找到value */
Set<String> set = map.keySet();
//使用迭代器Iterator遍历Set集合
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String key = it.next();
String value = map.get(key);
System.out.println(key + "=" + value);
}
// //使用forEach();遍历Set集合
// for (String key : set) {
// String value = map.get(key);
// System.out.println(key + "=" + value);
// }
// System.out.println();
2.entrySet()
entrySet方法:将 键值对 封装成一个整体-Entry, 然后将多个Entry对象放到一个Set集合里
//遍历方式2: entrySet 键值对封装成一个整体-Entry, Set<Entry>
/*实现步骤:
1.使用Map集合中的entrySet()方法,把Map集合中多个Entry对象取出来存储到一个Set集合中
2.遍历set集合,获取每一个Entry对象
3.使用Entry对象中的getKey()和getValue()方法获取键和值 */
Set< Map.Entry<String, String> > set1 = map.entrySet();
for (Map.Entry<String, String> en : set1) {
String key = en.getKey();
String value = en.getValue();
System.out.println(key + "=" + value);
}
System.out.println();
3.values()
所有的值存储到一个Collection集合中返回
就只能遍历值, 不能遍历键, 因为map不能反向映射
Collection<String> values = map.values();
for (String value : values) {
System.out.println(value);
}
java遍历集合的几种方式