Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中跨三个ArrayList复制元素 我正在从预定义数组创建两个ArrayLists 我需要获取两个ArrayList中的每个元素,并将这些值乘以,然后将答案存储在第三个ArrayList中。例如:ListA[0]*ListB[0]=ListC[0] 我需要将所有三个列表输出到控制台_Java_Arraylist - Fatal编程技术网

在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…谢谢你的回复。这是学校作业的一部分,因此需要数组列表。在阅读了您的其余回复之后,我可以了解数组的工作原理。我现在一切都准备好了。