2016-03-27 2 views
0

私はjava pingクライアントアプリケーションを開発しました。リストに要素を追加し、それらを偏差クラス偏差メソッドで配列に変換する際に構造体です。

マイPingjavaクラス私の目標は、pingクライアントのJavaアプリケーションからの偏差を見つけることです

public class PingClass{ 
    public static void main(String args[]) 
       throws IOException 
       { 
       // create the ping command as a list of strings 
     PingClass ping = new PingClass() 
      public void doCommand(List<String> command) 
      throws IOException 
      { 
      String s = null; 
      String Serror=null; 

      ProcessBuilder pb = new ProcessBuilder(command); 
      Process process = pb.start(); 
      BufferedReader stdInput = new BufferedReader(new InputStreamReader(process.getInputStream())); 
      BufferedReader stdError = new BufferedReader(new InputStreamReader(process.getErrorStream())); 
     // read the output from the command 
      System.out.println("Here is the standard output of the command:\n"); 
      while ((s = stdInput.readLine()) != null) 
      { 
      //logic here 
       } 

      } 

} 私はTTL値をキャッチしています上記の画面から上記のリストにTTL値を追加することで、構造体、ここで偏差class.iに送信する必要があります私はそれがより良いアプローチであるかどうかわかりません。私は偏差class.Iは、この行でエラーを取得していますに配列にリスト型の変換の型キャストの問題を取得しています

public class Deviation { 
    // Beginning of method 
    public static double deviation(List<Integer> t2) { 
//I am getting problem here although i have typecasted to double 
double[] array = new double[t2.size()]; 
double[] numbers= double[](t2.toArray()); 

    } // End of double findDeviation  
} // End of class Deviation 

:偏差クラスで

。 double [] numbers = double; これで私を助けてください。

答えて

0

)私は実際にこれをテストしていませんが、私はのtoArrayを(信じては[] Objectにリストを変換し、次の

t2.toArray() 

List<Integer>を変換することを意味します

https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#toArray()

Integer[]

double[]プリミティブとオブジェクトInteger[]は完全に異なっているので、私は最善の解決策を倍増するためにあなたのリストを変換することはおそらくだと思います[]前あなたの関数に

を渡すように編集

この私はこれをどうやって行うのですか

単一オブジェクトの標準偏差を取ることは意味をなさないので、私はループの外のリストに値を追加します:

その後、0
List<Double> doubleList = new ArrayList<Double>();    

while ((s = stdInput.readLine()) != null) { 
    System.out.println(s); 
    if(s.contains("TTL")) { 
     // Get value as a double 
     Double val = Double.parseDouble(s.substring(44, 47)); 
     // Add to doubleList 
     doubleList.add(val); 
    } 
} 

// Call deviation 
Deviation.deviation(doubleList) 

、Iは

public static double deviation(List<Double> t2) 

に偏差クラスのメソッドのパラメータを変更して出力をチェックします。

あなたはまだ問題を取得する場合、私は変更一覧について学ぶために、以下のリンクを参照することになり、私はすべてのTTLの値が図を示し、結合して、それを送信するプリミティブ配列

How to cast from List<Double> to double[] in Java?

+0

に反対偏差クラスにリストし、私は配列に同じ変換する(私は型キャストでエラーが発生している)。以下のコードを修正するのを手伝ってください。 if(s.contains( "TTL")) { リスト t1 = new ArrayList (); t1.add(Integer.parseInt(s.substring(44、47))); System.out。println(t1); for(整数番号:t1){ System.out.println( "Number =" + number); } – chandu

+0

投稿を編集しました – jrhee17

+0

ありがとうございました。それは助けてくれました:) – chandu

関連する問題