java 怎么才能倒序输出ArrayList

发布网友 发布时间:2022-04-22 22:52

我来回答

5个回答

热心网友 时间:2023-10-07 06:53

int i = c.size(); 这里有问题。ArrayList的最大下标也是size()-1,你从size()开始当然会有ArrayIndexOutOfBoundsException。把它改成int i = c.size()-1;

热心网友 时间:2023-10-07 06:54

int i = c.size();
这里出错了 应该是 int i = c.size()-1;

import java.util.ArrayList;
public class Test03 {
public static void toBinary(int a){
try{

ArrayList c = new ArrayList();
while(a>0){
c.add(a%2);
a /=2;
}
int i = c.size()-1;
while(i>=0){
System.out.println(c.get(i));
i--;
}

}
catch(ArrayIndexOutOfBoundsException e){
System.out.println("数组下标越界");
}
catch(NullPointerException e){
System.out.println("空指针错");
}
catch(IndexOutOfBoundsException e){
System.out.println("List下标越界");
}

}
public static void main(String[] args) {
int a = 100;
System.out.println();
toBinary(100);
}

热心网友 时间:2023-10-07 06:54

修改后的程序如下:
import java.util.ArrayList;

public class Test03 {
public static void toBinary(int a) {

ArrayList c = new ArrayList();
while (a > 0) {
c.add(a % 2);
a /= 2;
}
int i = c.size() - 1;
while (i >= 0) {
System.out.print(c.get(i));
i--;
}
}

public static void main(String[] args) {
int a = 100;
System.out.print(a + "的二进制表现形式:");
toBinary(100);
}

}

说明:
1、原先程序的错误就在List下标越界,它的长度是c.size();但是它的最后一个值的索引时c.size()-1,只要改一下即可。
2、这个try-catch语句是用来捕捉异常的,现在既然没有异常,你大可以把它去掉,这样程序看上去更简洁。
3、想到用ArrayList来保存某个整数的二进制数,的确是个好办法!

热心网友 时间:2023-10-07 06:55

对啊应该用c.size()-1

热心网友 时间:2023-10-07 06:56

的确,楼主的想法不错,学习了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com