java在循环赋值的时候用list存值,为什么数据会被覆盖
时间: 2024-05-01 17:20:35 浏览: 23
在Java中,使用List存储数据时,如果在循环中反复向List中添加元素,可能会出现数据被覆盖的情况。这是因为List中存储的是对象的引用,而不是对象本身。在循环中,如果每次向List中添加的是同一个对象的引用,则List中存储的都是同一个对象的引用,最终结果就是List中所有元素都指向同一个对象,因此数据会被覆盖。
为了避免这种情况,可以在循环中创建新的对象,并将其添加到List中。例如,如果要向List中添加多个字符串,可以在循环中使用new关键字创建新的字符串对象,如下所示:
```
List<String> list = new ArrayList<>();
for(int i=0; i<10; i++){
String str = new String("String " + i);
list.add(str);
}
```
在上述代码中,每次循环都会使用new关键字创建一个新的字符串对象,并将其添加到List中,这样就避免了数据被覆盖的问题。
相关问题
java中,for里面循环赋值给list,怎么拿到for外面用
在循环体内部,可以通过调用 `List` 的 `add()` 方法将每一次循环的值添加到列表中。循环结束后,可以通过调用 `List` 的 `get()` 方法获取列表中的值。
例如,假设有一个字符串数组 `String[] arr`,需要将数组中的所有元素添加到一个列表中,然后再将列表中的元素输出,可以这样写:
```
List<String> list = new ArrayList<>();
for (String str : arr) {
list.add(str);
}
for (String str : list) {
System.out.println(str);
}
```
在第一个 `for` 循环中,将数组 `arr` 中的每个元素添加到列表 `list` 中。在第二个 `for` 循环中,遍历列表 `list` 中的每个元素,并将其输出。
java 如何对list 数据进行逐一赋值序号
你可以使用 Java 中的 for 循环来对 List 中的数据进行逐一赋值序号。具体实现方法如下所示:
```java
List<String> list = new ArrayList<>();
// 添加数据到 list 中
for (int i = 0; i < list.size(); i++) {
String item = list.get(i);
item = i + 1 + ". " + item;
list.set(i, item);
}
```
在上面的代码中,我们首先创建了一个 List 对象,并向其中添加了一些数据。然后我们使用 for 循环来遍历 List 中的数据,对每个数据进行逐一赋值序号的操作。具体来说,我们使用 `list.get(i)` 方法来获取当前位置的数据,然后将该数据与当前位置的序号拼接成一个新的字符串,并使用 `list.set(i, item)` 方法来将该字符串设置回原位置的数据中。最后我们得到的 list 中的数据将会是逐一赋值序号后的新数据。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)