为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 2 个现有的 ArrayLists (Java) 创建一个矩阵?

如何从 2 个现有的 ArrayLists (Java) 创建一个矩阵?

翻阅古今 2021-12-30 20:48:05
我正在从文本文件中读取内容并将它们解析为单独的 ArrayLists。例如,文本文件内容如下:Fruit1Fruit2Fruit3Vegetable1Vegetable2Vegetable3Vegetable4目前,我有一个代码将每个组分成自己的数组fruits = [Fruit1, Fruit2, Fruit3]vegetables = [Vegetable1, Vegetable2, Vegetable3, Vegetable4]如何从这两个现有的 ArrayLists制作一个包含n行和m列的矩阵?我的目标输出是像这样生成一个 3x4 矩阵          | Fruit1, Fruit2, Fruit3 Vegetable1|Vegetable2|Vegetable3|Vegetable4|           |我已经看到了演示初始化矩阵的示例,但是,如果我更新我的文本文件以假设 3x20 矩阵或 5x20 矩阵,我希望代码运行相同,这就是我挣扎的地方。这是我为矩阵编写的代码:List<List<String>> matrix = new ArrayList<List<String>>();matrix.add(fruits);matrix.add(vegetables);System.out.println(matrix);然而,这是输出,它只是将它们组合起来[Fruit1, Fruit2, Fruit3, Vegetable1, Vegetable2, Vegetable3, Vegetable4]如何创建一个矩阵,使一个 ArrayList 为行,另一个 ArrayList 为列?
查看完整描述

1 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

假设您需要以下矩阵:


Vegetable1 | Fruit1, Fruit2, Fruit3

Vegetable2 | Fruit1, Fruit2, Fruit3

Vegetable3 | Fruit1, Fruit2, Fruit3

Vegetable4 | Fruit1, Fruit2, Fruit3

您可以使用以下代码使用ArrayLists 进行所有比较:


List<String> vegetables = new ArrayList<>(); // Fill the lists somehow

List<String> fruits = new ArrayList<>();


for(String vegetable : vegetables) {

    for(String fruit : fruits) {

        System.out.printf("Compare %s to %s%n", vegetable, fruit);

    }

}

如果这就是您想要的,您就不需要嵌套列表。如果您真的想拥有一个矩阵,那么您需要对代码稍作修改:


List<String> vegetables = new ArrayList<>(); // Fill the lists somehow

List<String> fruits = new ArrayList<>();

List<List<String>> matrix = new ArrayList<>();    


for(String vegetable : vegetables) {

    List<String> row = new ArrayList<String>();

    row.add(vegetable);

    for(String fruit : fruits) {

        row.add(fruit);

    }

    matrix.add(row);

}

这将创建包含项目的行,VegetableN, Fruit1, Fruit2, Fruit3其中 N 是蔬菜行的编号。


查看完整回答
反对 回复 2021-12-30
  • 1 回答
  • 0 关注
  • 223 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信