java 怎么才能倒序输出ArrayList

这是我写的程序,可是会抛出异常。请高手指点importjava.util.ArrayList;publicclassTest03{publicstaticvoidtoBi... 这是我写的程序,可是会抛出异常。请高手指点
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();
while(i>=0){
System.out.print(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);
}

}
补充一下这里应该用泛型ArrayList<Integer> c = new ArrayList<Integer>();
展开
 我来答
Draconious
2009-05-25 · TA获得超过6242个赞
知道大有可为答主
回答量:2142
采纳率:0%
帮助的人:2580万
展开全部
int i = c.size(); 这里有问题。ArrayList的最大下标也是size()-1,你从size()开始当然会有ArrayIndexOutOfBoundsException。把它改成int i = c.size()-1;
0紫电清霜0
2009-05-25 · TA获得超过1418个赞
知道小有建树答主
回答量:404
采纳率:0%
帮助的人:0
展开全部
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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友feaac8c7c
2009-05-25 · TA获得超过998个赞
知道小有建树答主
回答量:168
采纳率:0%
帮助的人:165万
展开全部
修改后的程序如下:
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来保存某个整数的二进制数,的确是个好办法!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhuyu4904
2009-05-25
知道答主
回答量:26
采纳率:0%
帮助的人:0
展开全部
对啊应该用c.size()-1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雾里看花的过客
2009-05-25 · TA获得超过554个赞
知道小有建树答主
回答量:628
采纳率:100%
帮助的人:398万
展开全部
的确,楼主的想法不错,学习了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式