gpt4 book ai didi

java - 3 维数组列表参数不适用

转载 作者:行者123 更新时间:2023-12-02 03:48:22 25 4
gpt4 key购买 nike

我正在尝试用Java编写一个关于制表方法的程序。对于那些不熟悉的人来说,制表法的步骤之一是将具有相同数量的 1 的二进制文件分组。因此,我们将具有相同个数 1 的组放入 arraylist 中。因此,如果我们有五个不同的组(第一组不包含 1 的数字,第二组包含一个 1 的数字,依此类推),我们将它们存储在另一个数组列表中。因此是一个数组列表的数组列表。

在制表方法中,我们将每个组中的元素与前一组中的元素进行比较。每次我们从下一组中找到相似的元素(恰好有一个数字不同),然后我们将它们放入一个新列表中。该列表再次按照 1 的位数进行分组。因此,我们有一个数组列表的数组列表的数组列表。

我这里有的是我的代码的一部分:

allTables.add(new ArrayList<ArrayList<String>>().set(count, new ArrayList<String>().add(mintermBinaries[i])));

allTables 只是一个数组列表的数组列表的数组列表。整数计数确定二进制数中 1 的位数,并将其设置在该索引中,最后 mintermBinaries[i] 是包含所有二进制数(按升序排列)的数组的第 i 个索引。整个代码都在 for 循环内。

问题是它无法编译,因为根据 Eclipse,参数不适用。我不知道为什么。

经过深思熟虑,我不确定三维数组是否是一件好事。有人可以帮忙吗?有什么更好的方法来解决这个问题?

最佳答案

new ArrayList<ArrayList<String>>().set(
count,
new ArrayList<String>().add(mintermBinaries[i]))

set() 的第二个参数,这应该是 ArrayList<String> (因为您在 ArrayList<ArrayList<String>> 上调用它),是表达式

new ArrayList<String>().add(mintermBinaries[i])

该表达式的类型是方法add()返回值的类型。和add()返回一个 boolean 值。 boolean 值不是 ArrayList<String> .

不要尝试将所有代码写在一行中。将其替换为

List<ArrayList<String>> listOfLists = new ArrayList<ArrayList<String>>();
ArrayList<String> innerList = new ArrayList<String>();
innerList.add(mintermBinaries[i]);
listOfLists.set(count, innerList);

关于java - 3 维数组列表参数不适用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36124685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com