2014-02-06 1 views

답변

1

정렬이 처음
다음, ArrayList의 예를 들어

에서 두 번째 얻을 :

ArrayList<Integer> arrayList = new ArrayList<Integer>(); 
arrayList.add(1000); 
arrayList.add(10220); 
arrayList.add(990); 
Collections.sort(arrayList); 
System.out.println(arrayList.get(arrayList.size() - 2)); 
+0

실제로'get (arrayList.size() - 2)'해야합니다. – Maroun

+0

이것은 불필요한 노력입니다. 당신은 O (n)에서 그것을 할 수 있습니다! – laune

+0

@ ᴍarounᴍaroun : 예. 괜찮아요. :) –

0
Integer max2(List<Integer> list){ 
    if(list.size() < 2) throw... 
    Integer[] max = new Integer[]{ list.get(0), list.get(1) }; 
    if(max[0] < max[1]){ max[0] = max[1]; max[1] = list.get(0); } 
    return maxdo(list, 2, max); 
} 

Integer maxdo(List<Integer> list, int pos, Integer[] max){ 
    if(pos >= list.size()) return max[1]; 
    Integer next = list.get(pos); 
    if(next > max[0]){ max[1] = max[0]; max[0] = next; } 
    else if(next > max[1]){ max[1] = next; } 
    return maxdo(list, pos+1, max); 
} 

, 테스트하지 javac의와 시도하지,하지만 난 당신이 얻을 수있을 거라 생각 아이디어.

관련 문제