【问题标题】:ArrayList.add method not workingArrayList.add 方法不起作用
【发布时间】:2013-03-16 07:54:02
【问题描述】:

我是 java 的初学者,我不明白为什么这不起作用。我正在尝试编写一个将基数为 10 的数字转换为二进制数字的程序,但我遇到了 ArrayList 的问题。我不能使用 ArrayList 的 add 方法:

import java.util.ArrayList;
import java.util.Scanner;

public class DecimalToBinary {
public static void main (String[] args){
    Scanner reader = new Scanner (System.in);

    System.out.println("This program converts a decimal number to binary.");

    int decimal;
    ArrayList<int[]> binary = new ArrayList<int[]>();

    //Gets decimal number
    System.out.print("Enter base 10 number: ");
    decimal = reader.nextInt();

    //Adds 1 to binary and then adds the remainders of decimal/2 after that until decimal is 1 
    binary.add(1, null);
    while (decimal != 1){
        binary.add(1, decimal%2);//This is where I get the error
        decimal = decimal/2;
    }//Ends While loop
}//Ends main

}//结束 DecimalToBinary 类

【问题讨论】:

    标签: java methods arraylist add


    【解决方案1】:
    ArrayList <Integer> binary = new ArrayList <Integer>();
    
    binary.add(3);
    

    【讨论】:

      【解决方案2】:

      在这一行:

      ArrayList<int[]> binary = new ArrayList<int[]>();
      

      您声明 ArrayList 将仅包含 int 类型的数组。换句话说,存储在“二进制”中的每个对象都是一个 int 数组。

      所以,当你写的时候:

      binary.add(1, decimal % 2);
      

      您正在尝试将“十进制 % 2”添加到二进制的位置 1。因为 decimal % 2 是一个 int,而不是一个 int 数组,所以会出现编译器错误。

      将二进制的声明改为:

      ArrayList<Integer> binary = new ArrayList<Integer>();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-10
        • 2018-12-09
        • 1970-01-01
        • 1970-01-01
        • 2016-05-25
        • 2016-01-07
        相关资源
        最近更新 更多