gpt4 book ai didi

java - 组合包含 HashMap 的数组列表

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

你好,我有 2 个不同的数组列表,其中都包含 HashMap 格式的数据(键值对)。现在我需要将这两个列表组合成一个列表,同时保持两个列表的顺序(因此位置 [0] 处两个列表中的引用元素应该在新列表中保持一个又一个)。我需要这个来在 ListView 中显示这些信息,但到目前为止,我只设法合并这两个列表,但顺序不正确(第一个列表将占据新列表的前半部分,而第二个列表的引用将在后面) )。希望有人能帮助我:)

最佳答案

这里有一个方法(可以重构以减少代码)

import java.util.ArrayList;
import java.util.HashMap;


public class Test {


public static void main (String[] args){

final ArrayList<HashMap<String, Integer>> listOne = new ArrayList<HashMap<String, Integer>>();
final ArrayList<HashMap<String, Integer>> listTwo = new ArrayList<HashMap<String, Integer>>();

// Test data for listOne
for (int i = 0; i< 10; i++) {
final HashMap<String, Integer> map = new HashMap<String, Integer>();

map.put(String.valueOf(i), i);

listOne.add(map);
}

// Test data for listTwo
for (int i = 0; i< 20; i++) {
final HashMap<String, Integer> map = new HashMap<String, Integer>();

map.put(String.valueOf(i), i);

listTwo.add(map);
}

// Determine the lower size
final ArrayList<HashMap<String, Integer>> finalList = new ArrayList<HashMap<String, Integer>>();
final int minSize = (listOne.size() <= listTwo.size()) ? listOne.size() : listTwo.size();

// Iterate the two list with the lower size
for (int i = 0; i<minSize; i++) {
finalList.add(listOne.get(i));
finalList.add(listTwo.get(i));
}

// Add the remanent for the bigger list if needed
if (listOne.size() > minSize) {

for (int i = minSize; i<listOne.size(); i++) {
finalList.add(listOne.get(i));
}

} else if (listTwo.size() > minSize) {

for (int i = minSize; i<listTwo.size(); i++) {
finalList.add(listTwo.get(i));
}
}

System.out.println(finalList);

}
}

关于java - 组合包含 HashMap 的数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22285222/

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