2011-07-28 9 views
1

첫 번째 열은 일련 번호를 가지며 두 번째, 세 번째 및 네 번째는 x 좌표, y 좌표 및 속도를 갖습니다. 일련 번호가 있으면 필드를 검색해야 할 수도 있습니다. 일련 번호 7의 y 좌표 또는 일련 번호 10의 속도를 가져 오려고합니다. 한 가지 방법은 x, y 및 속도로 내부 클래스를 가지며 내부 클래스의 객체에 일련 번호를 매핑하는 것입니다. 하지만 상황이 복잡해 보이고 특정 필드 값을 가져 오는 것이 복잡해 보입니다. 더 나은 해결책이 있습니까?Java에서 테이블을 저장하고 데이터를 검색하는 방법은 무엇입니까?

+1

추가 : 일련 번호가 고유합니다. – aps

+0

저장 하시겠습니까? –

+0

내 프로그램 자체에서. 프로그램에서 사용합니다. – aps

답변

1

hashCode() 및 equals()를 올바르게 구현하는 키 객체를 만듭니다. 일련 번호가 직접 사용 가능한 것으로 보입니다.

저장할 필요가있는 모든 필드와 각 필드 x에 대해 getX() 및 setX()를 사용하여 데이터 객체를 만듭니다.

Map<KeyObject,DataObject>을 만들어 (키, 데이터) 쌍으로 사용하십시오.

오래된 개체는주의해서 제거해야 메모리 누수가 발생합니다.

+0

마지막으로 언급 한 점에 대해 자세히 설명하거나 링크를 제공해 주시겠습니까? "오래된 개체를 제거하는 데 매우 신중해야합니다. 그렇지 않으면 메모리 누수가 발생할 것입니다." 그것이 의미하는 바를 많이 가지지 마십시오. 고맙습니다. – aps

+0

지도에 물건이 쌓이면지도가 가비지 수집 될 때까지 주변에 머물러있게됩니다. 따라서 다시는 사용하지 않을 것을 알게되는 쌍이 있다면 가비지 수집기에 의존하는 대신지도에서 수동으로 제거해야합니다. –

+0

확인. 명시 적으로 필요없는 객체를 삭제하는 방법은 무엇입니까? – aps

1

배열 또는지도 사용 (컬렉션 ->지도)은 어떻게됩니까?

배열을 사용하면 필요한 크기로 배열 하나를 만들면됩니다. 귀하의 경우 :

Array[number_of_itens_to_store][3] 
// 3 => 0 = id, 1 = x, 2 =y, 3 = speed 

지도가있는 경우 : http://download.oracle.com/javase/6/docs/api/java/util/Map.html을보십시오. 귀하의 ID는 K (키)이고 배열은 값으로 사용할 수 있습니다.

모음집 (http://download.oracle.com/javase/tutorial/collections/index.html)을 살펴보고 자습서를 따라 자신 만의 모음집을 만들 수도 있습니다.

관련 문제