Java笔试题关于List的for循环和for each循环,能给解释一下这段代码的运行么

List<Integer> list = newArrayList<Integer>(2);
for (int i = 0; i < 4; i++){
list = new ArrayList<Integer>(1);
list.add(i);
}
for (Integer i: list) {
System.out.print(i);
}
求输出结果

List<Integer> list = newArrayList<Integer>(2);
//这里声明容量为2的Integer 类型的list
for (int i = 0; i < 4; i++){//进行四次遍历
    list = new ArrayList<Integer>(1);
    //这里给前面声明的list重新赋值,变成容量为1了,以前的声明无效了
    list.add(i);
    //这里给新的容量为1的list赋值i
}
//每一次遍历list都被新的容量为1的list覆盖,所以最后只剩下最后赋值的容量为1的list
//也就是i=3的时候
//所以下面的输出会是3
for (Integer i: list) {
    System.out.print(i);
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-01
1、输出结果3
2、理解:
List<Integer> list = newArrayList<Integer>(2); // 声明集合并赋予空间2个

for (int i = 0; i < 4; i++){ //此行是循环4次
list = new ArrayList<Integer>(1); // 将集合 list 覆盖并赋予空间1个
list.add(i); //向 list 空间赋值,由于每次循环都重新将 list 覆盖并赋予空间,所以只需要计算最后一次循环添加的值即可
}

for (Integer i: list) { //循环list集合
System.out.print(i); //由于每次循环都重新将 list 覆盖并赋予空间1个,所以只循环一次,并取出第一个循环中最后一个添加的值:3.
第2个回答  2014-12-01
输出结果:3追问

是for循环每次都重新创建了一个list么

Java笔试题关于List的for循环和for each循环,能给解释一下这段代码...
List<Integer> list = newArrayList<Integer>(2);\/\/这里声明容量为2的Integer 类型的listfor (int i = 0; i < 4; i++){\/\/进行四次遍历 list = new ArrayList<Integer>(1); \/\/这里给前面声明的list重新赋值,变成容量为1了,以前的声明无效了 list.add(i); \/\/这里给新的容...

java中对集合对象list的几种循环访问总结
for-each循环内部实际上是使用了Iterator来实现遍历,它简化了代码,但无法在遍历过程中修改集合。尽管性能略逊于直接使用Iterator,但其时间复杂度与前两者相同。选择遍历方法时,可以根据具体情况做出折中选择。对于顺序存储的集合,for循环和for-each循环都是不错的选择;对于链式存储的集合,Iterator提供了更...

简述for与foreach语句的区别
for循环和foreach循环的主要区别在于它们的迭代方式和适用场景。For循环更为通用和灵活,而foreach循环则更简洁且专注于集合元素的遍历。详细解释如下:首先,for循环是一种通用的循环结构,在编程中广泛使用。它通过指定循环的初始条件、循环条件和迭代步骤来控制循环的执行。例如,在C#或Java中,一个典型的...

Java培训:foreach循环的用法
在Java培训中,foreach循环作为一种简化版的for循环,从JDK5开始被引入,用于遍历数组或集合。其语法简洁,无需获取长度或索引操作,由Java虚拟机自动处理遍历。例如,文件6-5中的Example05.java展示了如何用foreach遍历ArrayList,元素个数决定循环次数,每次循环都会用变量存储当前元素并打印。另外,HashSet...

Java 中多种循环 List 的方式详解
首先,使用增强型for循环是最直观、便捷的方式。此方法直接遍历List中的每个元素,简洁明了。其次,获取List的迭代器后,可借助while循环安全地遍历列表元素。迭代器支持在遍历时删除元素,且操作更安全。Java 8引入的forEach方法简化了处理列表元素的过程。只需在List上应用此方法,结合Lambda表达式,即可...

Java中foreach循环用法详解,真香!
Java的foreach循环,被誉为for循环的增强版,主要用于简化数组和集合的遍历操作。它在Java 5中引入,使得代码更简洁,易于阅读,特别适用于处理元素,而无需关心索引问题。foreach的用法如下:对于任何类型collection,你可以指定一个变量element_type和element,如`for (element_type element : collection) ...

java中for或foreach遍历数组问题。
自从Java5中引入了foreach语句之后,在循环遍历数组、集合方面带来了极大的方便,但是在用foreach的时候也要注意其与for循环是不能完全划等号的。在使用foreach遍历数组集合的过程中一定要注意不要修改其内容,在Java程序中会进行报错,但是在有些时候没有错误提示,就会造成花很多时间找不到问题所在。for...

如何在java中实现List集合的遍历
方法一:for-each循环for(String attribute : list) { System.out.println(attribute);}方法二:for循环for(int i = 0 ; i < list.size() ; i++) { system.out.println(list.get(i));}方法三:迭代器迭代Iterator it = list.iterator();while(it.hasNext()) { System.ou.println(...

Java流指南:forEach()及其示例
1. List中的forEach()forEach()作为终端操作,调用后会执行实际操作,不再返回流。例如,遍历列表的传统方式是通过for-each循环:输出:...而使用Stream的forEach()则更简洁:输出:...方法引用也可以简化这个过程:2. Map上的forEach()在处理Map时,forEach()可以避免链式调用多个方法。如找出IMDB...

java里面的for循环的格式: for(String s : arr)是什么意思,能否详细...
分析如下:for的循环语句for(String s : args)这个格式是foreach的形式,表示取出数组args[]中的每一个元素,就是循环一次就依次取出一个元素赋值给s,知道取完为止java中的foreach也是用for表示具体语法分两种:第一种-数组for(type var : arr) {\/\/循环体}示例(这里以List为例):List<String> ...

相似回答