迭代器Iterator使用
Collection接口遍历元素使用Iterator(称为迭代器),所有实现Collection接口的集合类都有一个Iterator()方法,只能用于遍历集合。
List list = new ArrayList<>();
Iterator iterator = list.iterator();//获取迭代器
while (iterator.hasNext()) {//判断是否还有下一个,如果不用hasNext()会报NoSuchElementException
Object next = iterator.next();
System.out.println(next);
}
增强for循环遍历
底层也是采用了 Iterator 的方式实现,可以理解为简化版本的Iterator
List lists = new ArrayList<>();
//增强for循环同样可以用在数组上面
//使用foreach增强for循环
for (Object list:lists) {
System.out.println(list);
}
List常用遍历方式
1. 使用迭代器(Iterator)
2. 使用增强for循环
3. 使用普通for循环
Set常用遍历方式
1. 使用迭代器(Iterator)
2. 使用增强for循环
3. 不能使用普通for循环(因为没有提供get方法)
Map接口常用方法
- put:添加
- remove:根据键删除映射关系
- get:根据键获取值
- size:获取元素个数
- isEmpty:判断元素是否为空
- clear:清空
- containsKey:查找键是否存在
Map常用遍历方式
第一组:先取出所有的key,在通过Key获取对应的Values
增强for循环
//先取出所有的key,在通过Key获取对应的Values
Set keyset = map.keySet();
for (Object key:keyset) {
System.out.println(key+"__"+map.get(key));
}
迭代器
//先取出所有的key,在通过Key获取对应的Values
Set keyset = map.keySet();
Iterator iterator = keyset.iterator();
while (iterator.hasNext()){
Object key = iterator.next();
System.out.println(map.get(key));
}
第二组:取出所有的Values
增强for循环
//把所有的Values值取出
Collection values = map.values();
for (Object value:values) {
System.out.println(value);
}
迭代器
//把所有的Values值取出
Collection values = map.values();
Iterator iterator = values.iterator();
while (iterator.hasNext()){
Object value = iterator.next();
System.out.println(value);
}
第三组:通过EntrySet来获取key-value
增强for循环
//通过EntrySet来获取key-value
Set entrySet = map.entrySet();
for (Object entry:entrySet) {
Map.Entry entrys = (Map.Entry) entry;
System.out.println(entrys.getKey()+" "+entrys.getValue());
}
迭代器
通过EntrySet来获取key-value
Set entrySet = map.entrySet();
Iterator iterator = entrySet.iterator();
while (iterator.hasNext()){
Object value = iterator.next();
Map.Entry entrys = (Map.Entry) value;
System.out.println(entrys.getKey()+" "+entrys.getValue());
}