2012-11-27 2 views
0

나는안드로이드 ArrayList를 정렬

2.25mm 
2.75mm 
5mm 
5.5mm 

같은 값을 가진 문자열 ArrayList에 있습니다. 5.5mm 5.5mm 진행 어디 2.25mm 정확히 2.75mm

나는 어떤 도움을 많이 주시면 비교할 수있는 경험이 없었어요.

답변

3

당신은 그것의 문자 notiation뿐만 숫자 정렬을 행동하지, String으로 항목을 정렬되기 때문에이 . (ASCII 46) 따라서 5.5mm5mm보다 최대 이동 m (ASCII 109) 전에 온다.

mm을 제거하여 다른 소수점 목록을 작성, 아래와 같이 새로운 소수점 목록 정렬 :

 myList.clear(); 
     for(BigDecimal elem: decimalList){ 
      myList.add(elem.doubleValue()+"mm"); 
     } 
+0

감사합니다. 멋진 솔루션입니다. – Mark

+0

@ user1706269 : 도움이 되었다면, 답을 수락하는 것을 잊지 마십시오 (투표 옆에있는 화살표를 클릭하십시오). –

+0

오늘 처음으로 답변을 수락 했으므로 보상을 위해 다시 왔습니다. 다시 한 번 감사드립니다. – Mark

4

문자열로 정렬하고 문자 m은 문자 . 앞에옵니다.

mm을 제거하고 구문 분석 된 BigDecimal 값을 정렬하는 것이 더 쉬울 수도 있습니다.

0

: 당신이 원하는 경우

 List<BigDecimal> decimalList = new ArrayList<BigDecimal>(); 
     for(String elem: myList){ 
     decimalList.add(new BigDecimal(elem.substring(0, elem.length()-2))); 
     } 
     Collections.sort(decimalList); 

가 다시 같은 분류 문자열 목록을 다시를 mm이 필요하고 문자열로 정렬하는 경우이 질문은 이미 답변 된 것 같습니다.

Sort ArrayList of Array in Java