【问题标题】:A program to merge two lists into one [duplicate]将两个列表合并为一个的程序[重复]
【发布时间】:2018-09-11 19:57:24
【问题描述】:

我必须合并这两个列表。这是迄今为止我未完成的编码程序。我无法取得任何进一步的进展。我需要帮助完成这项任务。合并列表应包含所有提供的数字。另外,如果你愿意,可以留一个详细的解决过程供我学习吗?

public class Lab18bvst
{
    public static void main(String[] args)
    {
        int[] jsaList1 = {101, 105, 115, 125, 145, 165, 175, 185, 195, 225, 235, 275, 305, 315, 325, 335, 345, 355, 375, 385};
        int[] jsaList2 = {110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 270, 280, 320, 350, 400};

        Array list1 = new Array(jsaList1,"List #1");
        Array list2 = new Array(jsaList2,"List #2");
        Array list3 = new Array("Merged List");

        list3.merge(list1,list2);

        list1.display();
        list2.display();
        list3.display();

    }

}
class Array
{
    private ArrayList<Integer> list;
    private int size;
    private String listName;

    public Array(String ln)
    {
        list = new ArrayList<Integer>();
        size = 0;
        listName = ln;
    }

    public Array(int[] jsArray, String ln)
    {
        list = new ArrayList<Integer>();
        size = jsArray.length;
        listName = ln;
        for (int j = 0; j < size; j++)
            list.add( new Integer( jsArray[j] ));
    }

    public void display()
    {
        System.out.println("\n" + listName + ":\n");
        System.out.println(list + "\n");
    }

    public void merge(Array that, Array theOther)
   {
      int thatIndex, theOtherIndex;
      thatIndex = theOtherIndex = 0;

      for (int j = 1; j <= that.size + theOther.size; j++)
      {
         if (thatIndex >= that.size)
         {
            while(theOtherIndex < theOther.size)
            {
               this.list.add(theOther.list.get(theOtherIndex));
               theOtherIndex++;
            }
         }
         else if (theOtherIndex >= theOther.size)
         {
            while(thatIndex < that.size)
            {
               this.list.add(theOther.list.get(thatIndex));
               thatIndex++;
            }
         }
         else if

         else

      }

   }
}

【问题讨论】:

标签: java arrays merge jgrasp


【解决方案1】:

加入两个列表的最简单方法

List<String> newList = new ArrayList<String>();
newList.addAll(listOne);
newList.addAll(listTwo);

【讨论】:

  • 这是一个连接,而不是完全的合并(你不会消除重复)。
  • @guillaumegirod-vitouchkina 将 newList 设为 Set 类型即可。
猜你喜欢
  • 1970-01-01
  • 2019-09-22
  • 2012-05-12
  • 1970-01-01
  • 2020-11-26
  • 2014-01-27
相关资源
最近更新 更多