2017-09-04 5 views
1

Excel 문서를 가져 와서 일부 레코드를 추가 및 삭제 한 다음 해당 레코드를 Excel로 다시 내보내기 전에 정렬하려고합니다. 총 20 개의 열이 가져 오기/내보내기됩니다.Java Excel의 여러 목록 정렬

열 정보를 캡처하기 위해 arraylists를 만들었습니다. 그들을 처리 한 후에 나는 그들을 분류하려고합니다.

static List<String> rA_column = new ArrayList<String>(); 
static List<String> rB_column = new ArrayList<String>(); 
static List<String> rC_column = new ArrayList<String>(); 
내가 먼저 다음 rC_column에 의해 rA_column으로 정렬하지만, 여전히 실수로 부정확 기록 정보를 일으키는 세포를 혼합하지 않고 함께 모든 레코드를 유지할 수있는 방법

?

지도에서 두 개의 문자열을 제한하고 20 개의 arraylists를 동기화 상태로 유지하기 때문에 어떻게 맵을 사용하거나 정렬 작업을 수행 할 수 있는지 이해할 수 없습니다.

+1

처럼 정렬 할 것입니다. – nullpointer

답변

4

세 가지 다른 목록을 만들지 마십시오. 대신에 세 가지 값을 모두 포함하는 클래스를 만들 수 있으며 레코드를 함께 유지하는 필드로 정렬 할 수 있습니다.

class ExcelRow { 
    String field1; 
    String field2; 
    String field3; 
} 

그리고 당신에 대해 얘기하고 필드를 기반으로 그 목록을 앞에`Model`으로 행을 표현하고 '목록 을`사용하여 더욱 정렬 할 왜이 Sort ArrayList of custom Objects by property

+0

public static void Attribute_Insert() { BufferedReader br = null; br = 새 BufferedReader (새 FileReader (sample_dataset)); while ((line = br.readLine())! = null) { String [] attributes = line.split (delimiter); 목록 stringAttributes = new ArrayList (); (int i = 0; i Brown

+0

죄송합니다. muratk.I이 환경에 익숙하지 않아 코드 블록에 이전 코멘트를 올릴 수 없습니다. "ExcelRow"라는 새 클래스를 만들어 해당 클래스에서 가져 오거나 원래 클래스를 가져와 가져와야합니까? 목록을 만들지 않고 가져온 후 두 클래스 사이를 참조하는 방법을 이해할 수 없습니까? – Brown

+0

@Brown 당신은'List '을 가지며 모든 행의 열을 하나의 새로운 단일 객체로 전달합니다. 'list.add (새로운 ExcelRow (field1, field2, field3)'등등. –