为了账号安全,请及时绑定邮箱和手机立即绑定

我如何初始化另一个类的数组?

我如何初始化另一个类的数组?

www说 2022-05-21 17:15:12
我正在尝试根据用户输入初始化一个数组,以便它可以是任何自定义大小。默认情况下,我已将所有 0.0 值的数组初始化为 10,但是当我尝试调用初始化数组的方法时,什么也没有发生,并且数组中的大小或值都不会改变。班级编号:public class Numbers {private Float [] numbers;private int default_size = 10;public Numbers() {    ///  write code here to intialize a "default" array since this is the default constructor    numbers = new Float[default_size];    for(int i = 0; i < default_size; i++)    numbers [i] = (float) 0.0;}public Numbers (int size) {    ///  write code here to initialize an "initial" array given the parameter size as this is an initial constructor    numbers = new Float[size];}public void initValuesInArray() {    /// write code here to intialize the values in the array    Scanner scan = new Scanner(System.in);    for (int i = 0; i < numbers.length; i++) {        System.out.println("Enter Value : ");        numbers[i] = scan.nextFloat();    }}public String toString() {    // write code to return the values in the array in a list format - one value per line    for (int i = 0; i < numbers.length; i++)    System.out.println(numbers[i]);    return " ";}public float calcAverage() {    // write code to return the average of the values in the array    double sum = 0.0;    for (int i = 0; i < numbers.length; i++)        sum += numbers[i];    double average = sum / numbers.length;    System.out.println(average);    return (float) average;}}主类:public class Main {public static void main (String [] args) {    // write the code here to implement the menu as specified in Lab 1    boolean menuLoop = true;    while(true) {    System.out.println("Enter 1 to initialize a default array");        }    } }}它需要能够根据用户输入更改数组的大小,然后用户可以将值输入到数组中。
查看完整描述

2 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

您没有使用public Numbers (int size)在类中创建的构造函数Numbers。此外,您正在创建一个名为 的新变量numbers,而不是分配本地字段obj。这:

    Numbers [] numbers = new Numbers[x];

应该

    obj = new Numbers(x);


查看完整回答
反对 回复 2022-05-21
?
慕斯王

TA贡献1864条经验 获得超2个赞

如果您的元素数量不固定,则不应使用 Array。而是使用List或ArrayList(List 的子类)。


您可以在以下位置找到您需要的所有方法: developer.android.com/reference/java/util/ArrayList


编辑 24/01/19:


如果您需要ListorArrayList默认为 10,以防用户不输入值,您可以创建一个IF/ELSE自动填充列表的,或者使用SWITCH CASE您已经拥有的


例如:


List<Integer> myList = new ArrayList<Integer>();

float defaultValue = 0.0;


case 1:

    for(int i = 0; i < 10; i++) {

        myList.add(defaultValue)

    }

    break;

case 2:

    System.out.println("Enter the new size of array: ");

    int x = scan.nextInt();

    for(int i = 0; i < x; i++) {

        myList.add(defaultValue)

    }

    break;


查看完整回答
反对 回复 2022-05-21
  • 2 回答
  • 0 关注
  • 162 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号