2016-10-07 9 views
-1

javaで長さが不明な配列があります。 並べ替え後、配列の要素全体の1%を削除したいと考えています。 どうすればいいですか?配列と長さを関数に渡すとします。私はあなたが何かを意味すると仮定し配列から要素の一部を削除する

public double deleteElements(double array[], int length) { 
    int trimmedLength = array.length-length; 
    for (int i = 0; i < trimmedLength; i++) {    
    }  
} 
+3

問題文は少し曖昧です。詳細をお知らせください。 – Oleksandr

+0

上記のように、配列の先頭または末尾から%の要素を削除しますか? – px06

+0

あなたの質問が明確ではない、それを再編成してください。 – Ravikumar

答えて

0


import java.util.Arrays; 

public class Test{ 

     public static void main(String[] args){ 

      double[] testArray = new double[]{0,1,2,3,4,5,6,7,8,9}; 

      //implement sort, if needed 

      System.out.println(Arrays.toString(deleteElements(testArray, 5))); 
     } 

     public static double[] deleteElements(double array[],int newLength){ 

      //add check array != null 
      //add check length is <= array.length 

      double[] returnArray = new double[newLength]; 

      for(int i=0;i<newLength;i++){ 
       returnArray[i] = array[i]; 
      } 

      return returnArray; 
     } 
} 
0

を私はあなたに渡している長さは、リストから削除する要素のパーセントであるという仮定をしました。

これは配列をリストに変換し、ソートし、残りのパーセンテージを返される配列に戻します。

public double[] deleteElements(double[] doubles, int length) 
    { 
    List<Double> elements = Arrays.stream(doubles).boxed() 
     .collect(Collectors.toList()); 
    Collections.sort(elements); 
    int startElement = (int) (elements.size()/100.0 * length); 

    List<Double> subList = elements.subList(startElement, elements.size()); 

    return subList.stream().mapToDouble(d -> d).toArray(); 
    } 
関連する問題