2012-05-02 2 views
1

데이터 테이블이 있습니다 (열 수는 다른 행의 길이가 다를 수 있음). 또한 데이터를 삭제하거나 새 행을 추가 할 수 있어야합니다.데이터 테이블을 저장하는 가장 좋은 방법

이 데이터를 저장하는 가장 좋은 방법은 무엇입니까?

내 첫 번째 추측은 ArrayList입니다.

+0

표는 * * 적어도 두 개의 차원에 전달한다. 대신에 데이터베이스 나'Map'을 생각하고 있었습니까? – Makoto

+2

배열이 포함 된 Row 클래스를 만들고 ArrayList 을 사용하여 "테이블"을 포함합니다. 물론 그것은 사용 사례에 따라 다르지만 필요에 따라 적절하게 고안 할 수 있습니다. –

+0

다차원 배열을 사용하십시오. http://www.homeandlearn.co.uk/java/multi-dimensional_arrays.html –

답변

3

두 가지 접근 방법 :

  1. 문자열에 모든 것을 변환하고 각 항목이 ArrayList<String>로 표시되는 행 인 ArrayList<List<String>>를 사용합니다.

    • 장점 : "행"을 나타내는 고유 한 클래스를 만들 필요가 없습니다.
    • 단점 : 데이터를 변환해야하며 데이터를 변환하지 않고 수학 연산을 수행 할 수 없으며 모든 행이 동일한 길이인지 확인해야합니다. 항목이 실제 유형을 유지, 행 변수 길이가없는 (: dystroy으로

  2. ArrayList<Row>

    • 장점을 테이블에 를 나타내는 클래스를 생성하고 사용했다 (예 : row.get(3) 대신 row.getDate()) 열에 액세스 할 수있는 의미있는 방법이 있습니다.
    • 단점 : 추가 클래스를 만드는 것이 더 많은 작업 일 수 있습니다.
1

난 당신이 목록은 스택으로 작동 할 것으로 예상 특히 LinkedList의 선택 것입니다.

ArrayList의 주된 단점은 용량에 도달하면 더 큰 테이블을 다시 만들고 테이블 할당 및 복사 성능이 저하된다는 것입니다.

반면 LinkedList에는 모든 포인터로 작동하기 때문에 용량 개념이 없습니다.

나에 따르면, LinkedList 대신 ArrayList를 선호하는 주된 이유는 대부분 특정 인덱스에 액세스 (부분 읽기)하려는 경우입니다. ArrayList에서는 O (1)이고, LinkedList에서는 O (n)입니다.

에서 자세한 내용이 포스트를 읽을 수 데이터

When to use LinkedList over ArrayList?

관련 문제