能否将ArrayList作为java程序的命令行参数传递
我试图通过命令行参数将一个大整数数组列表作为输入传递给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 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万。