【发布时间】:2018-08-30 01:46:10
【问题描述】:
假设我有 2 个这样定义的列表:
- A[0] = [A01, A02]
- A[1] = [A11, A11]
- A[2] = [A21, A21]
- B[0] = [B01, B01]
- B[1] = [B11, B11]
- B[2] = [B21, B21]
我想生成一个这样的输出单列表:
- O[0] = {A01, A02, B01, B02}
- O[1] = {A01, A02, B11, B12}
- O[2] = {A01, A02, B21, B22}
- O[3] = {A11, A12, B01, B02}
- O[4] = {A11, A12, B11, B12}
- O[5] = {A11, A12, B21, B22}
- O[6] = {A21, A22, B01, B02}
- O[7] = {A21, A22, B11, B12}
- O[8] = {A21, A22, B21, B22}
到目前为止,我在每个列表上使用 2 个循环,并通过组合循环中的每个值来创建一个新列表。
List<Map<String, Object>> newList = new ArrayList<>();
for (Map<String, Object> originalData : originalDatas) {
for (Map<String, Object> duplicateData : duplicateDatas) {
Map<String, Object> newData = new HashMap<>();
newData.putAll(originalData);
newData.putAll(duplicateData);
newList.add(newData);
}
};
只要我们没有大量数据,它就可以正常工作。
但是,如果两个列表都有大约 10000 个条目,则运行将需要很长时间。
如果有人知道如何提高运行时间?
感谢您的帮助。
【问题讨论】: