小编Joh*_*ohn的帖子

从 ArrayList<ArrayList<Object>> 到固定大小的数组/列表

我有这个:

private ArrayList<ArrayList<Object>> models;
Run Code Online (Sandbox Code Playgroud)

在构造函数中我有:

models = new ArrayList<ArrayList<Object>>();
Run Code Online (Sandbox Code Playgroud)

后来,我做这样的事情:

models.add(new ArrayList<Object>());
Run Code Online (Sandbox Code Playgroud)

以及其他操作。

我想将外部 ArrayList 设为具有固定大小(数组、列表)的内容,但由于嵌套对象,我真的不知道如何编写声明、初始化、添加等。有人可以通过为我回答这个问题来节省我的时间吗?

java arrays arraylist

5
推荐指数
1
解决办法
822
查看次数

只需导入一次即可通过 Java 运行 Python 脚本

2020 年 4 月更新:我接受了下面的答案,因为它为我的问题提出了一个非常好的和简单的解决方案,但我的代码从未起作用!如果有人已经建立了类似的东西,请联系我!


我有一个简单的脚本my-script.py,它使用编写的特定库非常快速地进行一些计算Python:

import sys
import special-library

def fun(x):
  do something

fun(sys.argv[1])
Run Code Online (Sandbox Code Playgroud)

在我的Java代码中,我在代码的不同部分多次使用/调用此脚本,使用该ProcessBuilder方法,这意味着我只需运行命令python my-script.py argument。这意味着每次调用这个脚本时,我都必须执行import其中最耗时的命令(计算部分实际上更快)。

有没有办法让我只调用一次导入?我看了一点Jython- 是否可以编写一个类或一些可以启动的东西并进行一次导入,然后每次我想做计算部分(fun)时调用它的函数?有没有人做过类似的事情或对此有任何其他解决方案?

首次尝试实施

我试图编写一个“管道”Java 类,它将执行一次 python 脚本。现在脚本从 stdin 连续读取,当它获得 input 时argument,它会进行计算并返回结果:

import sys
import special-library

def fun(x):
  do something
  print('END')

for arg in sys.stdin:
  fun(arg)
Run Code Online (Sandbox Code Playgroud)

当我从命令行测试它并为其提供输入参数时,这当然有效。

Java类如下:

package my.package;
import java.io.*;

public class PythonScriptExecuter {

    private static BufferedReader pythonToJavaReader;
    private …
Run Code Online (Sandbox Code Playgroud)

python java import jython

3
推荐指数
1
解决办法
415
查看次数

标签 统计

java ×2

arraylist ×1

arrays ×1

import ×1

jython ×1

python ×1