【问题标题】:How to convert an list generated from another class如何转换从另一个类生成的列表
【发布时间】:2021-09-03 15:12:54
【问题描述】:

我已经创建了一个生成随机整数ArrayList() 的类:

import java.util.*;

public class RandomListGenerator {
    public static void main(String[] args){
        // Ask for an integer as user input.
        Scanner input = new Scanner(System.in);
        System.out.println("Please enter an integer between 1 and 10: ");
        int inp = input.nextInt();

        List<Integer> arr = genRandArrOfInts(inp);
        System.out.println("Generated a list of random integers: "+arr);
    }

    public static List<Integer> genRandArrOfInts(int n) {
        ArrayList<Integer> list = new ArrayList<>(n); // Create new ArrayList() of length n
        Random r = new Random();
        for (int i = 0; i < n; i++) {
            list.add(r.nextInt(10 + 10) - 10); // We get random ints in range max = 10 and min = -10
        }
        return list;
    }
}

当我自己运行这个类时,它工作正常,我得到这个输出:

Please enter an integer between 1 and 10: 
10
Generated a list of random integers: [0, -1, -3, -8, -9, 1, 3, 0, 8, -1]

但是当我尝试在另一个类中使用它并像这样打印它时:

public class Lab2Array {
    public static void main(String[] args){
        randomListGenerator list = new randomListGenerator();
        System.out.println("Generated this list of random integers: "+list);
    }
}

我得到的输出是:

Generated this list of random integers: randomListGenerator@15aeb7ab

如何转换它以获得ArrayList&lt;Integer&gt;?我还需要在其他类中使用生成器,所以我想将它作为它自己的类而不是在lab2Array-class 中使用

【问题讨论】:

  • 您需要调用创建列表的实际方法:例如list.genRandArrOfInts(10)。如果您从不调用创建并返回随机整数列表的方法,那么这将永远不会自行发生。
  • 由于该方法是静态的,因此您无需创建randomListGenerator。您可以直接调用该方法,List&lt;Integer&gt; list = randomListGenerator.genRandArrOfInts(10)。顺便说一句,约定是类以大写字母开头,即RandomListGenerator
  • 根据 Java 约定,类名以大写字母开头。我修复了您问题中的代码。
  • 小批评:您使用“Arr”命名令人困惑,因为它暗示了一个数组,但您使用的是 List 而不是数组。
  • 是的,我想要一个 ArrayList,但该方法给了我一个 List 对象,我不确定如何修复它,但我正在努力。

标签: java list intellij-idea arraylist


【解决方案1】:

调用实际返回所需整数列表的方法。

另外,不需要实例化一个对象。你的方法是static,所以它可以在没有对象的情况下调用。

public class Lab2Array {
    public static void main(String[] args){
        System.out.println("Generated this list of random integers: "+ RandomListGenerator.genRandArrOfInts(10));
    }
}

【讨论】:

    猜你喜欢
    • 2022-11-02
    • 2013-03-31
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    • 2015-11-12
    • 2013-08-19
    • 2022-01-01
    相关资源
    最近更新 更多