我如何将多维向量从C++翻译成java? 我完成了C++中的一个项目,只知道我应该用java编写它。这没什么大不了的,除了我的代码使用多维向量,比如: vector <vector<int> > arr

我如何将多维向量从C++翻译成java? 我完成了C++中的一个项目,只知道我应该用java编写它。这没什么大不了的,除了我的代码使用多维向量,比如: vector <vector<int> > arr,java,translate,multidimensional-array,Java,Translate,Multidimensional Array,Java中是否有类似的东西可以在不必彻底重写程序的情况下得到相同的结果 这是我在翻译过程中遇到的C++程序的代码片段: vector <vector <int> > arr; cin >> n; while (n > 0) { vector <int> row; int u; for (int i = 0; i < n ; ++i) { cin >> u;

Java中是否有类似的东西可以在不必彻底重写程序的情况下得到相同的结果

这是我在翻译过程中遇到的C++程序的代码片段:

vector <vector <int> > arr;

cin >> n;

while (n > 0)
{
    vector <int> row;
    int u;

    for (int i = 0; i < n ; ++i)
    {
        cin >> u;
        row.push_back(u);
    }

    arr.push_back(row);

    n = comb(row.size(), k);
    k++;
}

for (int i = 0; i < arr.size(); i+=2)
    for (int j = 0; j < arr[i].size(); ++j)
        sum += arr[i][j];

for (int i = 1; i < arr.size(); i+=2)
    for (int j = 0; j < arr[i].size(); ++j)
        diff += arr[i][j];

Java也有多维向量。只用

ArrayList<ArrayList<Integer>>arr=new ArrayList();

Java也有多维向量。只用

ArrayList<ArrayList<Integer>>arr=new ArrayList();

如果将其声明为ArrayList,则应提供所需的功能。您将丢失数组索引访问表示法,但这可以通过将调用链接到来解决。

如果您将其声明为ArrayList,则应提供所需的功能。您将丢失数组索引访问符号,但这可以通过将调用链接到来解决。

您可以使用ArrayList来调整代码。这里有一个小例子

 ArrayList <ArrayList<Integer>> aa = new ArrayList<ArrayList<Integer>>();
    aa.add(new ArrayList<Integer>());
    aa.get(0).add(10);
编辑

您的代码如下所示

    ArrayList <ArrayList<Integer>> arr = new ArrayList<ArrayList<Integer>>();
    BufferedReader br = new BufferedReader (new InputStreamReader(System.in));

    int n;
    n=br.read();
    while (n>0)
    {
        ArrayList<Integer> row = new ArrayList<Integer>();
        int u;
        for (int i=0;i<n;i++)
        {
            u=br.read();
            row.add(u);

        }
        arr.add(row);
        //I don't know this function
        n=com(row.size(),k);
        k++;
    }
    for (int i=0;i<arr.size();i+=2)
        for (int j=0;j<arr.get(i).size())
            sum+=arr.get(i).get(j);

您可以使用ArrayList来调整代码。这里有一个小例子

 ArrayList <ArrayList<Integer>> aa = new ArrayList<ArrayList<Integer>>();
    aa.add(new ArrayList<Integer>());
    aa.get(0).add(10);
编辑

您的代码如下所示

    ArrayList <ArrayList<Integer>> arr = new ArrayList<ArrayList<Integer>>();
    BufferedReader br = new BufferedReader (new InputStreamReader(System.in));

    int n;
    n=br.read();
    while (n>0)
    {
        ArrayList<Integer> row = new ArrayList<Integer>();
        int u;
        for (int i=0;i<n;i++)
        {
            u=br.read();
            row.add(u);

        }
        arr.add(row);
        //I don't know this function
        n=com(row.size(),k);
        k++;
    }
    for (int i=0;i<arr.size();i+=2)
        for (int j=0;j<arr.get(i).size())
            sum+=arr.get(i).get(j);

根据您的Java版本,您可能需要将其实例化为ArrayList arr=new ArrayList。在Java7中,可以将其编写为ArrayList arr=newArrayList。您的代码将在所有版本的Java中生成编译器警告。根据您的Java版本,您可能需要将其实例化为ArrayList arr=new ArrayList。在Java7中,可以将其编写为ArrayList arr=newArrayList。您的代码将在所有版本的Java中生成编译器警告。感谢您提供有关get的信息。然而,你所说的链接通话是什么意思?你有没有关于如何翻译我正在使用的嵌套循环以正确使用get方法的提示?@TheRationalist作为示例,你的行diff+=arr[I][j];必须变成diff+=arr.geti.getj。第一个get返回一个ArrayList,第二个get返回一个整数。感谢您提供有关get的信息。然而,你所说的链接通话是什么意思?你有没有关于如何翻译我正在使用的嵌套循环以正确使用get方法的提示?@TheRationalist作为示例,你的行diff+=arr[I][j];必须变成diff+=arr.geti.getj。第一个get返回一个ArrayList,第二个get返回一个Integer.Wow。非常感谢。如果我没有给托马斯选定的答案,我肯定会给你另一个简短的问题。BufferedReader是直接转换为整数变量,还是将输入存储为字符串?编辑:好的,我已经读过了,它确实返回了一个int,但是一个更好的问题。要在Eclipse中完成输入,我必须按Ctrl+z。输入此信号时,BufferedReader对象是否返回-1?那么,我会将a-1存储为最后一行中的最后一个元素吗?事实上,我犯了一个错误。read返回的int是字符的代码,而不是值。例如,如果您读取3,它将返回53或类似的值。您可以使用一个字符串读入其中,并使用Integer.parseInt将其转换为int,如下所示:String s;s=br.readLine;如果是的话=null row.addInteger.parseInts;这样,您的ArrayList中就不会有不需要的元素。谢谢您的回复。我最后做的是对每个整数输入使用Scanner对象和nextInt函数。工作得很有魅力。谢谢你的帮助!哇!非常感谢。如果我没有给托马斯选定的答案,我肯定会给你另一个简短的问题。BufferedReader是直接转换为整数变量,还是将输入存储为字符串?编辑:好的,我已经读过了,它确实返回了一个int,但是一个更好的问题。要在Eclipse中完成输入,我必须按Ctrl+z。输入此信号时,BufferedReader对象是否返回-1?那么,我会将a-1存储为最后一行中的最后一个元素吗?事实上,我犯了一个错误。read返回的int是字符的代码,而不是值。例如,如果您读取3,它将返回53或类似的值。您可以使用一个字符串读入其中,并使用Integer.parseInt将其转换为int,如下所示:String s;s=br.readLine;如果是的话=null row.addInteger.parseInts;这样,您的ArrayList中就不会有不需要的元素。谢谢您的回复。我最后做的是对每个整数输入使用Scanner对象和nextInt函数。工作得很有魅力。谢谢你的帮助!