当前位置: 代码迷 >> Android >> 结合包含散列图的arraylist
  详细解决方案

结合包含散列图的arraylist

热度:52   发布时间:2023-08-04 12:28:01.0

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

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

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);

    }
}

试试这个我认为这可以解决你的问题

   list2.add(list1);
  相关解决方案