能否将ArrayList作为java程序的命令行参数传递

能否将ArrayList作为java程序的命令行参数传递,java,arraylist,input,command,arguments,Java,Arraylist,Input,Command,Arguments,我试图通过命令行参数将一个大整数数组列表作为输入传递给java程序 我理解调用程序本身: java myProgram one two args[0] = "one" args[1] = "two" 但是如果我要这样运行这个程序 java myProgram arrayList 如何将此Arraylist的字符串[]表示形式转换回Arraylist arrayList将从一个单独的java文件返回,该文件返回一个biginetgr的arrayList,我可以使用该java程序作为这个文件

我试图通过命令行参数将一个大整数数组列表作为输入传递给java程序

我理解调用程序本身:

java myProgram one two

args[0] = "one"
args[1] = "two"
但是如果我要这样运行这个程序

java myProgram arrayList 
如何将此Arraylist的
字符串[]
表示形式转换回
Arraylist

arrayList将从一个单独的java文件返回,该文件返回一个biginetgr的arrayList,我可以使用该java程序作为这个文件的输入吗

我有点困惑,我该怎么做


谢谢

只要您将实际的十进制字符串传递给您的程序,例如
java myProgram 123 456

List<BigInteger> bigInts = new ArrayList<>(args.length);
for(int i = 0; i < args.length; i++)
    bigInts.add(new BigInteger(args[i]));
List bigInts=newarraylist(args.length);
对于(int i=0;i
或使用Java 8流:

List<BigInteger> bigInts = Arrays.stream(args)
                            .map(BigInteger::new)
                            .collect(Collectors.toList());
List bigInts=Arrays.stream(args)
.map(BigInteger::新建)
.collect(Collectors.toList());

但是,如果要将单词传递给程序,那么有两件事需要一个自定义函数来将英语单词解析为
biginger
,而且我怀疑是否有人会键入一个足够大的整数,因为命令行参数是字符串。因此,
字符串[]
。只需解析它们。我想您可以将序列化的
ArrayList
转储到一个文件中,然后通过管道将其传输到STDIN?不过,我看不出有什么理由。你想让
的“一”变成
1
?或者,您是否要将实际的十进制字符串传递给您的程序,即
“123”
?如果OP特别需要
ArrayList
,则可能值得使用
收集器。toCollection(ArrayList::new)
。而且,
30亿
太大,无法放入
int
——单词有时可能相当简洁。无论如何+1@BoristheSpider没错,但我没有提到
int
,而且
30亿
适合
long
!Meh,一个
长的
的最大值只有9.25亿左右。(美国“短规模”)@Boristespider确信用不多的词就有可能溢出它:
googleplex
!我仍然怀疑这是一个可能的用例。我怀疑他们是否需要一个
ArrayList
@boristeider刚刚注意到Java8中有,所以这是1850万。