我是java的新手我创建了两个arraylists,然后在用户从第1点和第2点获得所需数量的数字时,请求用户输入一个数字。我将arraylists转换为数组。我需要比较两个点数组,然后将最低值的缺失数设置为零。 例如
我不知道如何比较这两个数组并将零添加到最低数组。任何帮助将不胜感激。
主要
上的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();
}
答案 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之间的关系是什么?