在Java中跨三个ArrayList复制元素 我正在从预定义数组创建两个ArrayLists 我需要获取两个ArrayList中的每个元素,并将这些值乘以,然后将答案存储在第三个ArrayList中。例如:ListA[0]*ListB[0]=ListC[0] 我需要将所有三个列表输出到控制台
我创建并填充了第一个列表,但让我感到不舒服的是计算方法在Java中跨三个ArrayList复制元素 我正在从预定义数组创建两个ArrayLists 我需要获取两个ArrayList中的每个元素,并将这些值乘以,然后将答案存储在第三个ArrayList中。例如:ListA[0]*ListB[0]=ListC[0] 我需要将所有三个列表输出到控制台,java,arraylist,Java,Arraylist,我创建并填充了第一个列表,但让我感到不舒服的是计算方法extend。下面列出了我所拥有的代码。有人能提供一些关于我在这里缺少什么的见解吗 package threeArrayLists; import java.util.ArrayList; public class ThreeArrayLists { public static void main(String[] args) { double [] price_Array = {10.62, 14.89, 13.21, 1
extend
。下面列出了我所拥有的代码。有人能提供一些关于我在这里缺少什么的见解吗
package threeArrayLists;
import java.util.ArrayList;
public class ThreeArrayLists {
public static void main(String[] args) {
double [] price_Array = {10.62, 14.89, 13.21, 16.55, 18.62, 9.47, 6.58, 18.32, 12.15, 3.98};
double [] quantity_Array = {4.0, 8.5, 6.0, 7.35, 9.0, 15.3, 3.0, 5.4, 2.9, 4.8};
ArrayList<Double> priceList = new ArrayList<Double>();
ArrayList<Double> quantityList = new ArrayList<Double>();
ArrayList<Double> amountList = new ArrayList<Double>();
for (int i = 0; i < price_Array.length; i++) {
priceList.add(price_Array[i]);
}
for (int j = 0; j < quantity_Array.length; j++) {
quantityList.add(quantity_Array[j]);
}
extend(priceList, quantityList, amountList);
}
private static void extend(ArrayList<Double> prices,
ArrayList<Double> quantity,
ArrayList<Double> amount) {
for (int k = 0; k < prices.size() && k < quantity.size(); k++) {
amount.add(prices[k] * quantity[k]);
}
}
}
package-threeArrayLists;
导入java.util.ArrayList;
公共类三数组列表{
公共静态void main(字符串[]args){
双[]价格数组={10.62,14.89,13.21,16.55,18.62,9.47,6.58,18.32,12.15,3.98};
双[]数量_数组={4.0,8.5,6.0,7.35,9.0,15.3,3.0,5.4,2.9,4.8};
ArrayList priceList=新的ArrayList();
ArrayList quantityList=新的ArrayList();
ArrayList amountList=新建ArrayList();
对于(int i=0;i
价格
和数量不是数组,而是s。它们不支持[]
运算符,但您可以使用get(int)
方法访问它们的元素:
for(int k = 0; k < prices.size() && k < quantity.size(); k++)
{
amount.add(prices.get(k) * quantity.get(k));
}
for(int k=0;k
您真的需要列表吗?从你帖子中的代码来看,这并不清楚,
而且没有明显的理由使用列表。
通过仅使用阵列,实现可以更短、更简单:
public static void main(String[] args) {
double[] priceArray = {10.62, 14.89, 13.21, 16.55, 18.62, 9.47, 6.58, 18.32, 12.15, 3.98};
double[] quantityArray = {4.0, 8.5, 6.0, 7.35, 9.0, 15.3, 3.0, 5.4, 2.9, 4.8};
double[] amountArray = multiply(priceArray, quantityArray);
}
private static double[] multiply(double[] prices, double[] quantity) {
double[] result = new double[prices.length + quantity.length];
for (int k = 0; k < prices.length && k < quantity.length; k++) {
result[k] = prices[k] * quantity[k];
}
return result;
}
publicstaticvoidmain(字符串[]args){
双[]价格数组={10.62,14.89,13.21,16.55,18.62,9.47,6.58,18.32,12.15,3.98};
double[]quantityArray={4.0,8.5,6.0,7.35,9.0,15.3,3.0,5.4,2.9,4.8};
double[]amountArray=乘法(priceArray,quantityArray);
}
私有静态双[]乘(双[]价格,双[]数量){
double[]结果=新的double[prices.length+quantity.length];
对于(int k=0;k
如果确实要使用列表,请执行以下操作:
public static void main(String[] args) {
Double[] priceArray = {10.62, 14.89, 13.21, 16.55, 18.62, 9.47, 6.58, 18.32, 12.15, 3.98};
Double[] quantityArray = {4.0, 8.5, 6.0, 7.35, 9.0, 15.3, 3.0, 5.4, 2.9, 4.8};
List<Double> priceList = Arrays.asList(priceArray);
List<Double> quantityList = Arrays.asList(quantityArray);
List<Double> amountList = multiply(priceList, quantityList);
}
private static List<Double> multiply(List<Double> prices, List<Double> quantity) {
List<Double> result = new ArrayList<Double>();
for (int k = 0; k < prices.size() && k < quantity.size(); k++) {
result.add(prices.get(k) * quantity.get(k));
}
return result;
}
publicstaticvoidmain(字符串[]args){
双[]价格数组={10.62,14.89,13.21,16.55,18.62,9.47,6.58,18.32,12.15,3.98};
Double[]quantityArray={4.0,8.5,6.0,7.35,9.0,15.3,3.0,5.4,2.9,4.8};
List priceList=Arrays.asList(pricelarray);
List quantityList=Arrays.asList(quantityArray);
列表金额列表=乘法(价格列表、数量列表);
}
私有静态列表倍增(列表价格、列表数量){
列表结果=新建ArrayList();
对于(int k=0;k
注:
- 只要有可能,最好按接口类型而不是实现类型声明变量,例如
而不是List
ArrayList
- 将列表传递给void方法进行修改不是一个好主意。最好让该方法创建列表并返回它
- Java中的变量名应该是
,不带下划线(不带camelCase
字符)\uu
- 一个巧妙的技巧:如果您将数组的类型从
更改为double[]
,您可以使用double[]
,就像我在上面的示例中所做的那样数组将其轻松转换为列表。asList
List
s。单凭数组就能更简洁地完成他的目标。@janos…谢谢你的回复。这是学校作业的一部分,因此需要数组列表。在阅读了您的其余回复之后,我可以了解数组的工作原理。我现在一切都准备好了。