정보 처리/알고리즘

키값이 두개이고 값이 하나인 데이터를 정렬해야 한다면?

본클라쓰 2011. 1. 26. 08:16

아래와 같은 데이터가 존재하고 이 데이터를 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);