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

我正在从文本文件中读取内容并将它们解析为单独的 ArrayLists。


例如,文本文件内容如下:

Fruit1

Fruit2

Fruit3

Vegetable1

Vegetable2

Vegetable3

Vegetable4

目前,我有一个代码将每个组分成自己的数组


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 为列?


翻阅古今
浏览 226回答 1
1回答

倚天杖

假设您需要以下矩阵:Vegetable1 | Fruit1, Fruit2, Fruit3Vegetable2 | Fruit1, Fruit2, Fruit3Vegetable3 | Fruit1, Fruit2, Fruit3Vegetable4 | Fruit1, Fruit2, Fruit3您可以使用以下代码使用ArrayLists 进行所有比较:List<String> vegetables = new ArrayList<>(); // Fill the lists somehowList<String> fruits = new ArrayList<>();for(String vegetable : vegetables) {&nbsp; &nbsp; for(String fruit : fruits) {&nbsp; &nbsp; &nbsp; &nbsp; System.out.printf("Compare %s to %s%n", vegetable, fruit);&nbsp; &nbsp; }}如果这就是您想要的,您就不需要嵌套列表。如果您真的想拥有一个矩阵,那么您需要对代码稍作修改:List<String> vegetables = new ArrayList<>(); // Fill the lists somehowList<String> fruits = new ArrayList<>();List<List<String>> matrix = new ArrayList<>();&nbsp; &nbsp;&nbsp;for(String vegetable : vegetables) {&nbsp; &nbsp; List<String> row = new ArrayList<String>();&nbsp; &nbsp; row.add(vegetable);&nbsp; &nbsp; for(String fruit : fruits) {&nbsp; &nbsp; &nbsp; &nbsp; row.add(fruit);&nbsp; &nbsp; }&nbsp; &nbsp; matrix.add(row);}这将创建包含项目的行,VegetableN, Fruit1, Fruit2, Fruit3其中 N 是蔬菜行的编号。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java