我需要編寫一個方法,其中int[]
將作爲輸入提供,它應該返回一個數組,但所有數字發生的次數超過n次。刪除陣列中的重複元素以及Java 1.7中的元素
Inputs:
(int list) data = [1, 2, 2, 3, 3, 3, 4, 5, 5]
Output:
(int list) [1, 4]
這些是我嘗試過的步驟。
- 將int數組複製到ArrayList(inputList)。
- 創建LinkedHashset以查找唯一值
迭代LH並使用迭代器查找ArrayList的收集頻率。
int[] intArray = new int[0]; if(n!=0){ if(data.length<100){ ArrayList<Integer> inputList = new ArrayList<Integer>(data.length); //System.out.println(Arrays.toString(data)); for (int i = 0; i < data.length; i++){ inputList.add(Integer.valueOf(data[i])); } LinkedHashSet<Integer> lhs = new LinkedHashSet<>(inputList); intArray = new int[lhs.size()]; int i=0; int j=0; Iterator<Integer> itr = lhs.iterator(); while(itr.hasNext()){ Integer shiftNumber = itr.next(); if(Collections.frequency(inputList, shiftNumber)==1) { intArray[i++] = shiftNumber.intValue(); j++; } } intArray = Arrays.copyOf(intArray, j); return intArray; } } return intArray;
我能夠與上述snippet.However達到的結果是,我需要在減少的代碼段,並通過使用任何算法或其他集合對象提高性能的建議。
看起來要張貼到[代碼審查(http://codereview.stackexchange.com /),SO不是爲了改進工作代碼,而是修復破壞的代碼。 –
或者您可以查找答案進行比較並查看其他要測試的解決方案。 [刪除重複](http://stackoverflow.com/questions/10056729/java-remove-duplicates-from-an-array) – Underbalanced
@Underbalanced請重新閱讀聲明。問題是刪除包含重複項目的項目。 輸入: (INT表)數據= [1,2,2,3,3,3,4,5,5] 輸出:用於問題 (INT表)[1,4] – Satheesh