创建一个存储字符串的ArrayList对象,在其中添加若干个字符串元素,编写程序,用下面方法将其中每个字符串转换成大写字符串。使用迭代器访问列表中的元素 提示:迭代器获取字符串转换成大写后,再写回列表对应的位置
时间: 2024-02-09 13:08:56 浏览: 32
好的,以下是代码实现:
```java
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("hello");
list.add("world");
list.add("java");
System.out.println("转换前的列表:" + list);
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String str = iterator.next();
iterator.remove(); // 删除当前元素
list.add(str.toUpperCase()); // 将转换后的字符串加入列表
}
System.out.println("转换后的列表:" + list);
}
}
```
输出结果为:
```
转换前的列表:[hello, world, java]
转换后的列表:[HELLO, WORLD, JAVA]
```
解释一下代码流程:
1. 创建一个 ArrayList 对象,用 add 方法添加三个字符串元素。
2. 获取迭代器,用 while 循环遍历列表中的所有元素。
3. 在循环中,先使用 next 方法获取当前元素,然后使用 remove 方法删除当前元素。
4. 接着,将转换后的大写字符串使用 add 方法加入列表。
5. 循环结束后,输出转换后的列表。
注意,这里使用了 remove 方法删除当前元素,而不是使用 set 方法直接修改元素。这是因为如果直接修改元素,迭代器就无法正常遍历列表,会抛出 ConcurrentModificationException 异常。所以需要先删除当前元素,再将转换后的字符串加入列表。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.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)
![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)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![dll](https://img-home.csdnimg.cn/images/20210720083646.png)