아래와 같은 데이터가 존재하고 이 데이터를 1번 키값을 기준으로 정렬해야 한다면
1번키, 2번키 = 값
1번키, 2번키_1 = 값_1
1번키, 2번키, 값을 가지는 하나의 데이터 객체를 생성하여 모든 데이터는 이 객체에 데이터를 집어 넣은 후 배열에 이 객체들을 하나씩 삽입합니다. 하지만 정렬을 해야 할 때 1번 키 값을 기준으로 해야 하기 때문에 1번키값에 무엇이 있는지 알 필요가 있습니다. 이 1번키값을 고유값으로 하는 하나의 맵 객체를 통해 1번키값의 리스트를 정리한 후 1번키 값을 기준으로 키값에 맞는 값을 정렬합니다.
데이터 객체
class Vo {
key1, key2;
value;
// gettings and setting 메소드 생략
}
수도 코드
HashMap 맵 = new HashMap();
ArrayList 리스트 = new ArrayList();
int index = 0;
for ( 모든 데이터 ) {
만약 ( 맵에 key1값을 가진 값이 없다면 ) {
맵.put( index++, key1값 );
} 없다면 { 진행 }
vo객체에 값 저장
리스트에 vo 객체 추가
}
실제 코드
if ( !sheetMap.containsValue(sheetValue) ) {
sheetMap.put(index++, sheetValue);
}
pv = new PropertyVo();
pv.setSheet(Integer.parseInt(sheetValue));
pv.setCell(Integer.parseInt(cellValue));
pv.setValue(value);
volist.add(pv);
'정보 처리 > 알고리즘' 카테고리의 다른 글
N_Queen (Back Tracking 알고리즘) (0) | 2011.01.26 |
---|---|
소수구하기 (0) | 2011.01.26 |
최대 공약수(Greatest Common Divisor) 구하기 (0) | 2010.09.02 |
약수(Divisor) 구하기 (0) | 2010.08.28 |
알고리즘과 비슷하지만 다른 최적화(Optimization)란 (0) | 2008.11.26 |