簡體   English   中英

如何將數組列表值返回到單獨的數組中?

[英]How can I return an Array list value into a separate array?

我正在嘗試創建一個程序來獲取兩個向量的點積。 我通過創建一個數組列表(命名距離)來實現。 通過在main方法中更改此行,可以使該程序使用硬編碼數字運行。

double vect_A[] = distnace(mag);
double vect_B[] = distance(dista);

我知道上面的代碼無法運行,是否可以將這些特定值返回到單獨的數組中? 還是我錯誤地解決了這個問題。 我對Java非常陌生,將不勝感激。

//java implementation for dot product
// and cross product of two vector.
import java.util.Scanner;
import java.util.ArrayList;

class practiceMats {
    public static void main (String[] args) {
        vector();
        double vect_A[] = distnace(mag);
        double vect_B[] = distance(dista);

        // dotProduct function call
        System.out.print ( "Dot product:");
        System.out.println (dotProduct(vect_A, vect_B)) ;
    }


    static double n = 3.0;

    // Function that return
    // dot product of two vector array.
    static double dotProduct(double vectorA[], double vectorB[])
    {     
        double product = 0.0;

        // Loop for calculate cot product
        for (int i = 0; i < n; i++)
            product = product + vectorA[i] * vectorB[i];
        return product;
    }

    static ArrayList<Integer> vector() 
    {
        ArrayList<Integer>distance= new ArrayList<Integer>();  
        Scanner scan = new Scanner (System.in);
        System.out.println("Please enter your array length: ");
        int s = Integer.parseInt(scan.nextLine());
        System.out.println();

        for(int i = 0; i < s; i++) {
            System.out.println("Enter your distance: ");
            int dista = Integer.parseInt(scan.nextLine());
            distance.add(dista); 
            System.out.println("Enter your distance: ");
            int mag = Integer.parseInt(scan.nextLine());
            distance.add(mag); 
        }
        return distance;
    }
}

確保在“ vect_A”之后正確拼寫距離。

(添加為答案,因為我無法發表評論...)

我將采取略有不同的方法,而不是嘗試使用單個方法調用讀取兩個數組,而是將其調用兩次以讀取用戶的數組輸入。 這樣,用戶還將知道他為arrayA和arrayB輸入的值。 因此,您的向量方法將如下所示:

     static ArrayList<Integer> vector(int vectorSize) 
    {
    System.out.println("Kindly provide details for the Vector: ");
    ArrayList<Integer>distance= new ArrayList<Integer>();  
    Scanner scan = new Scanner (System.in);

    for(int i = 0; i < vectorSize; i++) {
    System.out.println("Enter your distance: ");
    int dista = scan.nextInt();
    distance.add(dista); 
    }       
   return distance;
    }

主要方法如下:

  public static void main (String[] args) 
    {
       System.out.println("Please enter your array length: ");
       int s = scan.nextInt();
        System.out.println();
        List<Integer> vectorA= vector(s);
        List<Integer> vectorB= vector(s);
        double vect_A[] = //convert your List vectorA to array
        double vect_B[] = //convert your List vectorB to array

         // dotProduct function call
        System.out.print ( "Dot product:");
        System.out.println (dotProduct(vect_A, vect_B)) ;
    } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM