2009-10-23 2 views
0

오라클 테이블을 저장할 최적의 데이터 구조는 약 140 행 3 열입니다. 나는 다차원 배열에 대해 생각하고 있었다.3 컬럼 오라클 테이블을 저장하는 최상의 Java 데이터 구조는 무엇입니까? 3 열 배열? 또는 이중지도?

: 나는 반드시 프로그램을 실행하는 데 충분한 시간이있는 작업으로 실행하기 때문에 (하지만 난 당신의 의견을 알고 싶은데요)하지만 몇 가지 제한이 있습니까 가장 효율적인 의미하지 않는다 베스트

여러 개의 키가 처음에는 "null"이 될 수 있습니다. 따라서 첫 x 째 컬럼은 다중 널 값을 가질 수 있습니다. 또한 다른 열의 요소에 액세스 할 수 있어야합니다. 선형 검색보다 데이터에 액세스하는 것이 더 낫습니다.

그래서 다시, [] [] []와 같은 일이 .. 일 것이지만, 거기에 내가 키 또는 두 번째 열을 기준으로 액세스 할 수있는 3 열 맵 같은 것입니다? 지도에는 두 가지 값만 있습니다.

모든 데이터는 아마도 문자열이거나 캐스팅 된 문자열 일 것입니다.

감사

답변

2

키와 다른 키를 사용하여 데이터에 액세스해야한다면 2 개의 맵을 사용하고 별도의 클래스를 정의하여 레코드를 보관하십시오.

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

Map<String, Record> firstKeyMap = new HashMap<String, Record>(); 
    Map<String, Record> secondKeyMap = new HashMap<String, Record>(); 
+0

field1이 null 일 수 있기 때문에 좋은 아이디어는 아닙니다. –

+0

key가 null의 경우, 그 키로 검색을 실시 할 필요는 없습니다. –

+0

또한 그는 첫 번째 키가 null이고 두 번째 키가 null 인 객체 2 세트를 지원할 수 있습니다. –

1

나는 당신의 기록을지도하고이 객체의 컬렉션을 만들 개체를 만들 것입니다.

4

3 개의 필드와 해당 클래스의 java.util.List이있는 사용자 정의 클래스입니다. 이 경우 배열에 신발 horning 데이터에는 효과가 없습니다

, 당신은 성능의 향상, 확실히 코드 유지 보수에 어떤 향상을 얻을 수 없습니다.

3

이 객체 지향 언어에서 FORTRAN를 작성하는 사람들의 또 다른 예이다.

Java의 객체에 대한 것입니다. 문제를 추상화하기 위해 객체를 사용하기 시작한 경우 클라이언트에서 세부 사항을 숨기고 커플 링을 줄이는 것이 훨씬 나을 것입니다.

의미있는 행동을하는 합리적인 객체는 무엇입니까? 나는 그걸로 시작하고 나중에 데이터 구조와 지속성에 대해 걱정할 것입니다.

모든 데이터는 아마 문자열이나 문자열로 캐스팅 될 것입니다.

정말 문자열이라면 괜찮습니다.하지만 더 자세히 살펴보고 더 잘할 수 있는지 알아 보시기 바랍니다. 예를 들어

, 당신은 당신이 데이터베이스에 숫자 열로 지속 유혹 할 수있는 신용 점수를 사용하는 응용 프로그램을 작성하는 경우. 그러나 문제를 더 세밀하게보고 그 값을 CreditScore 객체로 캡슐화하면 도움이됩니다. 그런 경우 단위 ('FICO'대 'TransUnion'), 척도 (0 ~ 850 범위), 풍부한 행동 (예 : 점수 순서를 정하는 규칙) 등을 추가 할 수 있다는 것을 알고 있습니다. 코드베이스 전체에서 신용 점수를 조작하기위한 논리를 분산시키는 대신 모든 것을 단일 객체로 캡슐화합니다.

테이블과 컬럼 및 객체에 대한 생각이 적어집니다. 또는 언어를 전환하십시오. 파이썬에는 튜플이 내장되어 있다는 개념이 있습니다. 아마 더 잘 작동 할 것입니다.