2017-12-06 3 views
0

申し訳ありませんが、私は詳細を明確にする必要があります。どのように配列の値を数えますか?

私はJavaを使用して簡単に書いてarrayを3回購入しています。新車が開始されるたびに、新しい取引として提示されます。

~~ 1シェアは100ドル/株で購入されました。

2株は200ドル/株で購入されます。

3株は300ドル/株で購入されます。

手持ちの合計6株。 ~~

1株あたりの平均購入価格を計算するにはどうすればよいですか?常に新しい車を追加し続けることによって実行されます。

package javaex; 

import java.util.ArrayList; 
import java.util.function.Predicate; 

    public class javaExstockprice 
     public static void main(String[] args){ 
     ArrayList<Car> al= new ArrayList(); 
     al.add(new Car(1,100)); 
     al.add(new Car(2,200)); 
     al.add(new Car(3,300)); 

     System.out.println("showsharesbuyingmethod-alltransaction = shares : buying"); 
     al.forEach(c->c.showsharesbuying()); 
     System.out.println(); 
     al.removeIf(c->c.shares>1); 
     System.out.print("transcation amount 1 share/below"); 
     System.out.println(); 
     al.forEach(c->c.showsharesbuying()); 
     System.out.println(); 
    } 







    class Car 
    float shares; 
    float buying; 
    Car (float a, float b) { 
     shares = a; 
     buying = b; 
    } 

    void showsharesbuying() { 
     System.out.println("showsharesbuying " + shares+ " : " + buying); 
    } 
+0

実際の質問は何ですか? 「1株あたりの平均買い値を計算する方法」またはリストのサイズが変更されたときに計算する方法 –

+0

3transaction averge株価を最初に数えるためのコードを追加する方法。 –

+0

私はまだ質問が何であるかはまだわかりませんが、単車の範囲外のものを計算したい場合は、単純なListよりも何かの車を追加することをお勧めします。 「トランザクション」を計算し、計算したいものを計算します。 – BrunoJCM

答えて

0

さて、あなたが欲しいものを推測しようとすると、ここに私の心に来るものである。このような静的メソッドのロジックを持つ

import java.util.List; 
import java.util.ArrayList; 
import java.util.function.Predicate; 

public class JavaExStockPrice { 

    public static void main(String[] args){ 

     List<Car> al= new ArrayList(); 
     al.add(new Car(1,100)); 
     al.add(new Car(2,200)); 
     al.add(new Car(3,300)); 

     System.out.println("showsharesbuyingmethod-alltransaction = shares : buying"); 
     al.forEach(c->c.showSharesBuying()); 
     System.out.println("Avg: " + priceAvg(al)); 
     System.out.println(); 
     al.removeIf(c->c.shares>1); 
     System.out.print("transcation amount 1 share/below"); 
     System.out.println(); 
     al.forEach(c->c.showSharesBuying()); 
     System.out.println("Avg: " + priceAvg(al)); 
     System.out.println(); 
    } 

    static double priceAvg(List<Car> l) { 
     return l.stream().mapToDouble(c -> c.buying * c.shares).average().getAsDouble(); 
        l.stream().mapToDouble(c -> c.shares).average().getAsDouble(); 
    } 

} 



class Car { 
    float shares; 
    float buying; 

    Car (float a, float b) { 
     shares = a; 
     buying = b; 
    } 

    void showSharesBuying() { 
     System.out.println("showsharesbuying " + shares+ " : " + buying); 
    } 
} 

は良いアイデアではありませんが、私はわかりませんそれがあなたが知りたいことならば。

+0

私は明示的に、あなたが理解していただければ幸いです。 –

+0

@sallytamは、各項目の価格が1株当たりの価格だと考えて私の答えを編集しました。これはあなたが望むものを与えるはずです。 – BrunoJCM

関連する問題