如何比较两个数组并得到最低的数组并添加零

时间:2013-11-27 07:50:04

标签: java arrays arraylist

我是java的新手我创建了两个arraylists,然后在用户从第1点和第2点获得所需数量的数字时,请求用户输入一个数字。我将arraylists转换为数组。我需要比较两个点数组,然后将最低值的缺失数设置为零。 例如

  • point1 =(12,123,123,435,6756,667)// 6个数字
  • point2 =(23,13,35)// 3个数字
  • point3 =(23,13,35,0,0,0)//替换point2并添加零的新数组
  •   -

我不知道如何比较这两个数组并将零添加到最低数组。任何帮助将不胜感激。


主要

上的3个对象
Point2 point1 = new Point2();
Point2 point2 = new Point2(); 
Point2 point3 = new Point2();

我将arraylist转换为数组的方式

Double dimPt1[] = new Double[ dimList1.size() ];
dimList1.toArray(dimPt1);
point1 = new Point2(dimPt1);

if (point1.length > point2.length)
      {

      }
      else if (point2.length > point1.lenght)
      {

      }
      else
      {
      System.out.print("Point 1 : ");
      point1.printPoints();
      System.out.print("Point 2 : ");
      point2.printPoints();
      }

3 个答案:

答案 0 :(得分:2)

在Java中,您无法操纵数组的大小。因此,您应该在转换为数组之前更改ArrayList

int size1 = dimList1.size();
int size2 = dimList2.size();
int maxSize = Math.max(size1, size2);
if (size1 < maxSize) {
    fillZeros(dimList1, maxSize);
} else {
    fillZeros(dimList2, maxSize);
}


private void fillZeros(ArrayList<Double> list, int maxSize) {
    for(int i = list.size(); i < maxSize; i++) {
        list.add(0.0D);
    }
}

答案 1 :(得分:1)

处理ArrayList而不是处理常规数组更有效。

请参阅此代码:

public static void main(String[] args) {

    if(list1.size() < list2.size()) {
        fillZeros(list1, list2.size());
    } else {
        fillZeros(list2, list1.size());
    }
}

private static void fillZeros(ArrayList list, int size) {
    int zerosToAdd = size - list.size();
    for (int i = 0; i < zerosToAdd; i++) {
        list.add(0);
    }
}

然后转换结果Arraylist如果你想

答案 2 :(得分:-2)

我真的不明白你的意思.ponit1与point2和point3之间的关系是什么?