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>(); 展开
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>(); 展开
6个回答
展开全部
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);
}
这里出错了 应该是 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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
修改后的程序如下:
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来保存某个整数的二进制数,的确是个好办法!
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来保存某个整数的二进制数,的确是个好办法!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
的确,楼主的想法不错,学习了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询