list是我定义的一个存储字符串的List
Iterator it=list.iterator();
while(it.hasNext()){
ob[i]=it.next();
i=i++;
System.out.println(ob[i]); //这时能正确输出ob数组的每个值
}
我想再输出一次时问题就出现了
for(int k=0;k<len;k++){ //len是list的长度
System.out.println(ob[k]); //这时就不能正确输出ob数组的每个值了,除了第一个,其他的都是null,这是为什么呢? }
Iterator it=list.iterator();
while(it.hasNext()){
ob[i]=it.next();
i=i++;
System.out.println(ob[i]); //这时能正确输出ob数组的每个值
}
我想再输出一次时问题就出现了
for(int k=0;k<len;k++){ //len是list的长度
System.out.println(ob[k]); //这时就不能正确输出ob数组的每个值了,除了第一个,其他的都是null,这是为什么呢? }
while(it.hasNext()){
ob[i]=it.next();
System.out.println(ob[i]); //这时能正确输出ob数组的每个值
i=i++;
}
这样好像就好了
Iterator it=list.iterator();
while(it.hasNext()){
ob[i]=it.next();
System.out.println(ob[i]); //这时能正确输出ob数组的每个值
i++;
}
这样,不知道你为什么要i=i++
我已经将list里的每个值都放到ob数组里了
我在这段程序上面定义了一个Object的数组ob用来存放list里面的每个元素,i=i++只是为了使数组走到下一个元素,并且最后可以根据i知道数组实际存放的元素个数
i=i++;
System.out.println(ob[i]); 感觉这样不对,应该ob[i]=it.next();
System.out.println(ob[i]);
i=i++;
while(it.hasNext()){
ob[i]=it.next();
System.out.println(ob[i++]); //这时能正确输出ob数组的每个值
}
这样试试
import java.util.Iterator;public class TestList { public static void main(String[] args) {
ArrayList<String> arraylist = new ArrayList<String>();
for (int i = 0; i < 5; i++) {
arraylist.add(String.valueOf(i)); }
System.out.println("开始时arraylist中的元素有");
for (int i = 0; i < arraylist.size(); i++) {
System.out.println("element at" + i + "is" + arraylist.get(i));
}
for (int i = 0; i < 1; i++) {
String[] obj = new String[5];
Iterator<String> it = arraylist.iterator();
while (it.hasNext()) {
obj[i] = it.next();
System.out.println(obj[i]);
}
} String[] arr = new String[arraylist.size()];//创建一个字符串数组
arr = (String[]) arraylist.toArray(arr);// 将list对像转换为字符串数组
int len = arr.length;
for (int j = 0; j < len; j++) {//输出arr对像中的元素
System.out.println(arr[j]);
}
}
}
import java.util.Iterator;public class TestList { public static void main(String[] args) {
ArrayList<String> arraylist = new ArrayList<String>();
for (int i = 0; i < 5; i++) {
arraylist.add(String.valueOf(i)); }
System.out.println("开始时arraylist中的元素有");
for (int i = 0; i < arraylist.size(); i++) {
System.out.println("element at" + i + "is" + arraylist.get(i));
}
for (int i = 0; i < 1; i++) {
String[] obj = new String[5];
Iterator<String> it = arraylist.iterator();
while (it.hasNext()) {
obj[i] = it.next();
System.out.println(obj[i]);
}
} String[] arr = new String[arraylist.size()];//创建一个字符串数组
arr = (String[]) arraylist.toArray(arr);// 将list对像转换为字符串数组
int len = arr.length;
for (int j = 0; j < len; j++) {
System.out.println(arr[j]);
}
}
}不好意思刚才没注意格试,现在重发哈
i=i++;无论执行多少次,i值也不会变,天啊,逻辑错误害死人啊
一个是i的自加那弄错了应该是i++ 或 i+=i
还有个就是第一个循环最后会有异常,应该先输出元素再自加,否则输出的是数组的下一个元素,最后会超过数组的长度