2011-01-26 4 views
2

나는 기본 데이터베이스에서 읽고있는 2D 테이블 구조를 가지고 있으며 궁금하다.이를 저장하는 데 사용할 가장 좋은 인 메모리 데이터 구조는 무엇인가? 더 읽기, 조작 등을 위해 액세스 할 수 있습니다.2D 테이블 구조를 메모리에 저장하는 데 적합한 데이터 구조는 무엇이겠습니까?

+1

당신이해야 할 조작을 정의하지 않았으므로 해결책을 찾기가 어렵습니다. 데이터베이스에서 리턴 된 순서대로 데이터에 액세스해야하며 그런 다음 행을 목록에 저장합니다. 그게 중요하지 않다면지도를 사용할 수 있습니다. 모든 데이터가 단순히 문자열입니까? 그러면 각 행을 List에 저장할 수 있습니다. 데이터가 다르며 데이터에 대해 다른 처리를 수행해야하는 경우 데이터를 올바르게 액세스 할 수 있도록 bean을 작성해야합니다. – camickr

답변

0

내가 여기

Map<String, Map<String,String>> table = new HashMap<String, Map<String,String>>(); 

같은지도 무언가의지도를 할 것입니다 것은 예를

column_a(primary), column_b, column_c 
-------------------------------- 
abc    | xyz  | 123 
def    | xxx  | 456 

당신은이 같이 사용할 테이블 읽기 그래서 후 :

map.get("abc").get("column_b").equals("xyz") 
map.get("def").get("column_c").equals("456") 

희망을 이것은 도움이됩니다. 참고 : 테이블에 정수로 ID가 없을 수 있으므로 첫 번째 맵에 문자열 키가 선택되었습니다. Integer가 더 잘 맞을 것이라고 생각하면 변경할 수 있습니다.

+0

이 모델을 설명해 주시겠습니까? 나는 생각했다 : 지도 <문자열, 목록 > 그런 : 열 이름은 문자열 열 데이터의 목록에 매핑 모델을 설명 해주십시오? thnx – Larry

+0

다른지도를 포함하는지도입니다. 2 차원 배열을 제외하고 2 차원 배열을 좋아합니다. 나는 당신이 아마 그것을 시도해야한다는 것 이외에 무엇을 설명해야할지 모르겠습니다. –

+0

그러나 참조 할 첫 번째 맵의 핵심은 무엇인가와 같은 의미를 설명 할 수 있습니까? 참조 할 두 번째지도의 핵심은 무엇입니까? 참조 할 두 번째지도의 가치는 무엇입니까? 그걸 제외하고 나는 그것을 시각화 할 수 있지만 그것을 사용하는 것이 어떤 식 으로든 그것을 알고 싶습니다 .. thnx again – Larry

1

열 이름 => 값으로 키순 해시 맵 배열이 나에게 도움이됩니다.

1

구아바 도서관에는 [Table] [http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/collect/Table.html] 인터페이스에 대한 두 가지 구현이 있습니다 : HashBasedTableTreeBasedTable. 좀 봐봐.

2

제 의견으로는 이런 것들은 종종 코드 냄새입니다. 테이블의 행을 나타내는 빈을 작성하고 일반적인 테이블 공포 대신 List<MyBean>을 사용하는 것이 좋습니다.

물론 이것은 미리 테이블이 어떻게 보이는지 알고 있다고 가정합니다.