java - 如何从列表列表中提取列表
问题描述
我有以下列表:
List<List<Integer>> fronts = new ArrayList<>();
List<Integer> f0 = new ArrayList<>();
f0.add(0);
f0.add(1);
f0.add(2);
f0.add(3);
fronts.add(f0);
List<Integer> f1 = new ArrayList<>();
f1.add(6);
f1.add(7);
f1.add(8);
f1.add(9);
fronts.add(f1);
List<Integer> f2 = new ArrayList<>();
f2.add(10);
f2.add(11);
f2.add(12);
f2.add(13);
fronts.add(f2);
我想得到四个列表,其中第一个列表包含每个列表的第一个元素,0,6,10
第二个列表是1,7,11
等等。
我怎样才能做到这一点?
解决方案
您可以创建一个包含所需 4 个列表的列表。
执行以下操作:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<List<Integer>> fronts = new ArrayList<List<Integer>>();
List<Integer> f0 = new ArrayList<>();
f0.add(0);
f0.add(1);
f0.add(2);
f0.add(3);
fronts.add(f0);
List<Integer> f1 = new ArrayList<>();
f1.add(6);
f1.add(7);
f1.add(8);
f1.add(9);
fronts.add(f1);
List<Integer> f2 = new ArrayList<>();
f2.add(10);
f2.add(11);
f2.add(12);
f2.add(13);
fronts.add(f2);
List<List<Integer>> result = new ArrayList<List<Integer>>();
for (int i = 0; i < fronts.get(0).size(); i++) {
List<Integer> temp = new ArrayList<Integer>();
for (int j = 0; j < fronts.size(); j++) {
temp.add(fronts.get(j).get(i));
}
result.add(temp);
}
System.out.println(result);
}
}
输出:
[[0, 6, 10], [1, 7, 11], [2, 8, 12], [3, 9, 13]]
推荐阅读
- foreign-keys - 我的 CRUD 应用程序应该对数据执行验证还是应该是数据库操作?
- javascript - 如何在 Visual Studio 中导入 JavaScript 库?
- sql - 从作为输入 oracle 传递的日期中查找星期
- laravel - Laravel 嵌套:事件(带时间线)和子事件(带时间线)
- visual-studio-code - 用于预定义文本替换的 VSCode 快捷方式/扩展?
- javascript - 如何将 bbcode 字符转换为 jsx?(丰富的文字)
- jsp - 我想解决这个问题。不涨价有什么意义?
- apache-spark - 如何从 spark 数据框列中读取 xml 数据
- sql-server - TSQL 将 varchar 转换为 int - 数字说 1,我得到一个点“。” 在varchar的末尾?
- php - Laravel无法获取类别的父级