2012-09-22 4 views
0

클라이언트에서 제공 한 HTML에 따라 UI에 데이터를 표시하는 중입니다. 여기있는 방식대로 진행됩니다. 이 내가특정 속성을 기반으로 ArrayList 정렬

  1. 스타일
  2. swatchColour
  3. 크기 1
  4. UI에 데이터를 표시 할 필요가 어떻게
  5. siz2
내가 순서를

  1. 다음의 데이터를 얻고

    스타일

  2. SIZE2
  3. swatchColour
  4. 크기 1

데이터를 다른 순서에 올 수있을하지만 난 첫 번째 블록에 표시되는 방식으로 데이터를 제시 할 필요가있을 수 있습니다, 나는 데이터가 반환되는 방식을 변경할 수 없습니다 API는 내 통제하에 있지 않으므로 우선 순위 목록에 따라 데이터를 정렬하고이를 UI로 보내서 표시 할 수 있습니다.

다음 코드

Collections.sort(string,Collections.reverseOrder()); 

그것을 위해

  1. 스타일
  2. swatchColour
  3. SIZE2
  4. 크기 1
다음의 데이터를 정렬을 사용하여

그래서 size2와 같은 방식으로 처리해야합니다. size1i는 어떤 유형의 비교기를 써야하나요? 아니면 size1과 size2 문자열을 내 사용자 지정 비교기에서 확인하고 나머지 데이터는 그대로 두어야합니다. 그것은 분류되고 있습니까? 또는 어떤 식 으로든 내가 목록

에게

내가 좋아하는 인간의 방식으로 문자열과 같은 크기 1과 SIZE2를 정렬하는 방법이 더 관심이 Eidt를 정렬하는 것을 사용할 수 있도록 내 정렬 목록을 만들 수 있습니다처럼 size1 나중에 size2해야합니다.

모든 의견을 환영합니다.

+1

당신이 필요한 것은 ['Collections.sort (리스트 데이터, Comparator comp)'] (http://developer.android.com/reference/java/util/Collections.html#sort (java.util.List % 3CT % 3E, % 20java.util.Comparator % 3C? % 20super % 20T % 3E)) 메소드를 호출합니다. –

+0

@AleksG : 그 점에 동의하지만 어떻게 그 두 문자열을 숫자와 비교할 것입니까? 특정 이름으로 확인해야합니까? –

+0

당신이하려는 일이 명확하지 않습니다.이 데이터가 각 품목/제품에 대해 별도로 제공되고 있으며 크기 변수에 대해 다른 값을 정렬하는 방법을 알고 싶습니까? 아니면이 모든 변수를 고려하여 제품/품목 객체 목록을 정렬하려고합니까? – Bobulous

답변

1

그냥 자신의 비교기를 만들고 거기에 자신 만의 맞춤 규칙을 설정하십시오.

문자열 수가 무한하기 때문에 java에서는 문자열 비교에 가능한 모든 규칙을 가질 수 없습니다.

+0

내 질문에 어떻게 할 것인가? 내 단어 목록을 작성해야합니까, 아니면'size2'가'size2' 앞에 있어야하는 것처럼 인간의 방식으로 문자열을 정렬 할 수있는 방법이 있습니까 –

+0

아니요, 원하는 규칙 (알고리즘)을 알아 내야합니다. 비교하다. 그것을하기 위해서, 각 문자열의 문자로 가서 -1/0/1을 언제 반환 할 것인지를 "더 크게"결정하십시오. 다음은 integer에 comparator를 사용하는 예입니다. http://www.vogella.com/blog/2009/08/04/collections-sort-java/. 문자열에 대해서도 비슷한 작업을 수행 할 수 있습니다. –

관련 문제