//每次都将arr中的第n-1个元素给s
System.out.println(s); //
}
4) 单列集合Collection
List list = new ArrayList();
list.add(“aaa”);
list.add(“bbb”);
list.add(“ccc”);
// 传统方式1
/* 1.获得迭代器
Iterator iter = list.iterator();
// 2.循环判断迭代器是否有下一个
while(iter.hasNext()) {
Stringstr = (String) iter.next(); // 将迭代器的指针移向下一个,并将迭代当前指向的元素返回
System.out.println(str);
}
*/
// 传统方式2
for(Iterator iter=list.iterator();iter.hasNext(); ) {
Strings = (String) iter.next();
System.out.println(s);
}
System.out.println(“--------------------------------”);
// 增强for循环, 没有使用泛型的集合能不能使用增强for循环迭代?能
for(Object obj : list) {
Strings = (String) obj;
System.out.println(s);
}
5) 双列集合Map
Map map = new HashMap();
map.put(“a”, “aaa”);
map.put(“b”, “bbb”);
map.put(“c”, “ccc”);
// 传统方式迭代1
// 1. 获得所有的key
Set keys = map.keySet();
// 2.迭代keys获得所有的key
Iterator iter = keys.iterator();
while(iter.hasNext()) {
Stringkey = (String) iter.next(); // a b c
//3.根据key获得对应的value
Stringvalue = (String) map.get(key);
System.out.println(key+ “=” + value);
}
System.out.println(“---------------------------------”);
// 传统方式2,必须掌握这种方式
// 1.获得所有的键值对Entry对象
Set entrys = map.entrySet();
// 2.迭代出所有的entry
iter = entrys.iterator();
while(iter.hasNext()) {
Map.Entryentry = (Entry) iter.next();
//分别获得key和value
Stringkey = (String) entry.getKey();
Stringvalue = (String) entry.getValue();
System.out.println(key+ “=” + value);
}
System.out.println(“-------------------------------------”);
System.out.println(“增强for循环迭代,”);
// 增强for循环迭代,
// 原则上map集合是无法使用增强for循环来迭代的,
// 因为增强for循环只能针对实现了Iterable接口的集合进行迭代
// Iterable是jdk5中新定义的接口,就一个方法iterator方法
// 只有实现了Iterable接口的类,才能保证一定有iterator方法
// java有这样的限定是因为增强for循环内部还是用迭代器实现的
// 而实际上,我们可以通过某种方式来使用增强for循环
for(Object obj : map.entrySet()) {
//obj 依次表示Entry
Map.Entryentry = (Entry) obj;
System.out.println(entry.getKey()+ “=” + entry.getValue());
}
6)集合迭代注意问题
// 在使用迭代器迭代集合的过程中,不能对集合进行增删操作
@Test
public void test4() {
Listlist = new ArrayList();
list.add(“wangwu”);
list.add(“zhangsan”);
list.add(“lisi”);
Iteratoriter = list.iterator();
while(iter.hasNext()){
Stringname = (String) iter.next();
if(“wangwu”.equals(name)){
//从集合中删掉
//list.remove(name);
//迭代过程中删除元素需要调用迭代器的方法
iter.remove(); // 删除我迭代的集合被我迭代的最后一个元素
}
}
// 1 2 4
System.out.println(list.size());
}
@Test
public void test5() {
Listlist = new ArrayList();
list.add(“aa”);
list.add(“bb”);
//使用ListIterator迭代器
ListIteratorlistIterator = list.listIterator();
while(listIterator.hasNext()){
listIterator.next();
//迭代过程中增加元素
listIterator.add(“cc”);
}
System.out.println(list.size());
}
7) 增强for循环注意问题
//在使用增强for循环时,不能对元素进行赋值
int[] arr = {1,2,3};
最后
前端CSS面试题文档,JavaScript面试题文档,Vue面试题文档,大厂面试题文档
//迭代过程中增加元素
listIterator.add(“cc”);
}
System.out.println(list.size());
}
7) 增强for循环注意问题
//在使用增强for循环时,不能对元素进行赋值
int[] arr = {1,2,3};
最后
前端CSS面试题文档,JavaScript面试题文档,Vue面试题文档,大厂面试题文档
[外链图片转存中…(img-XtHUpCiD-1720094197874)]
[外链图片转存中…(img-AlVIQRMJ-1720094197877)]