javaforremove
⑴ java里面的for循环的格式: for(String s : arr)是什么意思,能否详细解释一下
for的循环语句for(String s : args)这个格式是foreach的形式,表示取出数组args[]中的每一个元素,就是循环一次就依次取出一个元素赋值给s,知道取完为止java中的foreach也是用for表示具体语法分两种:
第一种-数组for(type var : arr) {//循环体}示例(这里以List为例):List<String> list = new ArrayList<String>();for(String item : list){System.out.println("循环元素:" + item);}
第二种-非数组类可迭代对象for(type var : coll) {//循环体}示例:Map<String, String> map = new HashMap<String, String>();for(Entry<String, String> item : map.entrySet()){System.out.println("循环元素 key:" + item.getKey() + " value:" + item.getValue());}
其实本质上和for(int i=0;i<length;i++)没太大区别,但是for(String s : arr)中的arr一定是字符串数组,每次循环取一个字符串出来赋值给s,直到arr数组长度-1结束。
(1)javaforremove扩展阅读:
Java for循环的几种用法:
在Java程序中,要“逐一处理”或者说,“遍历”某一个数组或Collection中的元素的时候,一般会使用一个for循环来实现(当然,用其它种类的循环也不是不可以,只是不知道是因为for这个词的长度比较短,还是因为for这个词的含义和这种操作比较配,在这种时候for循环比其它循环常用得多)。
对于遍历数组,这个循环一般是采取这样的写法:
清单1:遍历数组的传统方式
复制代码 代码如下:
/* 建立一个数组 */
int[] integers = {1, 2, 3, 4};
/* 开始遍历 */
for (int j = 0; j < integers.length; j++) {
int i = integers[j];
System.out.println(i);
}
而对于遍历Collection对象,这个循环则通常是采用这样的形式:
清单2:遍历Collection对象的传统方式
复制代码 代码如下:
/* 建立一个Collection */
String[] strings = {"A", "B", "C", "D"};
Collection stringList = java.util.Arrays.asList(strings);
/* 开始遍历 */
for (Iterator itr = stringList.iterator(); itr.hasNext();) {
Object str = itr.next();
System.out.println(str);
}
而在Java语言的最新版本――J2SE
1.5中,引入了另一种形式的for循环。借助这种形式的for循环,现在可以用一种更简单地方式来进行遍历的工作。
1、 第二种for循环
不严格的说,Java的第二种for循环基本是这样的格式:
for (循环变量类型 循环变量名称 : 要被遍历的对象) 循环体
借助这种语法,遍历一个数组的操作就可以采取这样的写法:
清单3:遍历数组的简单方式
复制代码 代码如下:
/* 建立一个数组 */
int[] integers = {1, 2, 3, 4};
/* 开始遍历 */
for (int i : integers) {
System.out.println(i); /* 依次输出“1”、“2”、“3”、“4” */
}
这里所用的for循环,会在编译期间被看成是这样的形式:
清单4:遍历数组的简单方式的等价代码
复制代码 代码如下:
/* 建立一个数组 */
int[] integers = {1, 2, 3, 4};
/* 开始遍历 */
for (int 变量名甲 = 0; 变量名甲 < integers.length; 变量名甲++) {
System.out.println(integers[变量名甲]); /* 依次输出“1”、“2”、“3”、“4” */
}
这里的“变量名甲”是一个由编译器自动生成的不会造成混乱的名字。
⑵ java中for或foreach遍历数组问题。
自从Java5中引入了foreach语句之后,在循环遍历数组、集合方面带来了极大的方便,但是在用foreach的时候也要注意其与for循环是不能完全划等号的。
在使用foreach遍历数组集合的过程中一定要注意不要修改其内容,在Java程序中会进行报错,但是在有些时候没有错误提示,就会造成花很多时间找不到问题所在。
⑶ Java中foreach添加String数组到List集合,有没有更简洁的方式
在Java编程中,将一个String数组添加到List集合中,可以采用多种简洁的方式实现。一种常见的方法是使用Arrays.asList()方法直接将数组转换为List。例如:List<String> list = Arrays.asList(str);这种方式可以直接将数组转换为集合,但需要注意的是,返回的List是一个固定大小的不可变列表。如果需要添加或移除元素,可以考虑将其转换为ArrayList,如下所示:List<String> list = new ArrayList<>(Arrays.asList(str));
此外,还可以直接创建一个新的String数组,并使用Arrays.asList()方法将其转换为List。这种方式可以更直观地展示添加元素的过程:List<String> list = Arrays.asList(new String[]{"a", "b", "c"});然而,这种方式同样返回一个固定大小的不可变列表。如果需要动态地添加或删除元素,可以考虑使用ArrayList,并手动添加元素。
在实际编程中,根据需求选择合适的方法至关重要。如果需要一个固定大小的不可变列表,直接使用Arrays.asList()即可。但如果需要一个可以动态修改的列表,建议先将数组转换为ArrayList,然后使用add()或remove()方法进行操作。
值得注意的是,直接将数组转换为List后,如果尝试修改List中的元素,将会抛出UnsupportedOperationException异常。这是因为Arrays.asList()方法返回的是一个固定大小的不可变列表。为了避免这种情况,可以使用ArrayList来包装List,如下所示:List<String> list = new ArrayList<>(Arrays.asList(str));这样既保留了数组的简洁性,又允许对List进行动态修改。
综上所述,将String数组添加到List集合中,有多种简洁的方式可以选择。根据具体需求,选择合适的方法可以提高代码的可读性和灵活性。