我试图求和N对整数-一个Nx2 ArrayList-并将N个求和值作为ArrayList返回。虽然我知道没有必要开设一门课程来完成此任务,但我希望以此作为将来项目的练习。
import java.util.ArrayList;
public class SumsInLoop {
public SumsInLoop(int numberOfPairs, ArrayList<ArrayList<Integer>> numbersList) {}
public ArrayList<Integer> getSums(int numberOfPairs, ArrayList<ArrayList<Integer>> numbersList) {
ArrayList<Integer> pairsOfSums = new ArrayList<Integer>();
for (ArrayList<Integer> Pair : numbersList) {
int x = Pair.get(0);
int y = Pair.get(1);
int sum = x + y;
pairsOfSums.add(sum);
}
System.out.println(pairsOfSums);
return pairsOfSums;
}
我得到的数据是N个整数对(numbersOfPairs)的随机分类,例如612673108695。我想将这些整数对添加到将由getSums调用的2D ArrayList(numbersList)中。
但是,我在初始化numberList时遇到困难。我的主要功能如下:
public static void main(String[] args) {
int myNumberOfPairs = 13;
ArrayList[][] myNumbersList = new ArrayList[13][2];
myNumbersList[0][0] = new ArrayList<>();
myNumbersList[0][0].add(612673);
myNumbersList[0][1].add(108695);
myNumbersList[1][0] = new ArrayList<>();
myNumbersList[1][0].add(756875);
myNumbersList[1][1].add(496058);
SumsInLoop mySum = new SumsInLoop(myNumberOfPairs,myNumbersList);
mySum.getSums(myNumberOfPairs, myNumbersList);
最后两行代码会引发错误,要求我将myNumbersList更改为type ArrayList<List<Integer>>
,即使将所有2D ArrayLists更改为type也会引发更多错误ArrayList<List<Integer>>
。
因此,我的两个问题如下:
PS我习惯于使用Python进行编码,并且自学Java,因此,非常感谢您可以为我提供的其他信息或资源。
您可能希望通过使用的2D数组来简化输入int
:int[][] myNumbersList = new int[13][2];
在这种情况下,预期输出是1D数组int[13]
,可以按以下方式获得(以2对为例。请参见mcve):
public class SumsInLoop {
//pairsOfInts should be an [n][2] array
private static int[] sumOfPairs(int[][] pairsOfInts) {
int[] sums = new int[pairsOfInts.length];
for(int pairIndex = 0; pairIndex < pairsOfInts.length; pairIndex++) {
sums[pairIndex]= pairsOfInts[pairIndex][0]+pairsOfInts[pairIndex][1];
}
return sums;
}
public static void main(String[] args) {
int numberOfPairs = 2;
int[][] pairsOfInts = new int[numberOfPairs][2];
pairsOfInts[0] = new int[] {612673,108695 };
pairsOfInts[1] = new int[] {756875,496058 };
int[] sumOfPairs = sumOfPairs(pairsOfInts);
System.out.println(Arrays.toString(sumOfPairs));
}
}
如果要使用来实现解决方案,则List
可以使用javafx Pair(或创建自己的Pair类。
输入可以定义为List<Pair<Integer,Integer>> pairsOfInts = new ArrayList<>();
输出可以是上述数组,也可以是List<Integer>
:
import java.util.ArrayList;
import java.util.List;
import javafx.util.Pair;
public class SumsInLoop {
private static List<Integer> sumOfPairs(List<Pair<Integer, Integer>> pairsOfInts) {
List<Integer> sums = new ArrayList<>();
for(Pair<Integer,Integer> pair : pairsOfInts) {
sums.add(pair.getKey()+ pair.getValue());
}
return sums;
}
public static void main(String[] args) {
List<Pair<Integer,Integer>> pairsOfInts = new ArrayList<>();
pairsOfInts.add (new Pair<>(612673,108695 ));
pairsOfInts.add (new Pair<>(756875,496058));
List<Integer> sumOfPairs = sumOfPairs(pairsOfInts);
System.out.println(sumOfPairs);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句