2012-02-14 3 views
0

값을 저장하고 검색하기 위해 행렬 유형 데이터 구조를 사용하고 싶습니다. 이 2 차원 어레이의 을 사용할 수 있습니다. 그러나 나는 더 나은 구조를 찾고 있습니다.루비, 행렬에서 행렬 룩업을위한 데이터 구조

요구 사항 : 매트릭스 열은 고정되어 있지만 행은 증가 할 수 있습니다.

다음 구조를 참조하십시오.

Issue| col1, col2, col3, col4 
1 | 0, 1, 0, 0 
2 | 0, 1, 0, 1 
3 | 1, 1, 0, 0 

지금 내가

내가 문제 2 COL1의 값을 알고 싶은 말을 찾아이 구조를 사용하려면 [구조의 값은 플래그 또는 상태 필드로 사용됩니다] (위의 예제에서 0입니다)

위의 시나리오에서 루비의 구조가 더 좋을 수 있습니까?

댓글주세요.

답변

1

해시는 어떻게됩니까?

h = { 1 => [0,1,0,0], 
    2 => [0,1,0,1], 
    3 => [1,1,0,0] } 

#fetch value for issue 2 col 1 
puts h[2][0] 
+0

빠른 답장을위한 thnx .. 명명 된 해시가 될 수 있습니까? 예를 들어 말한다. h [2] [col1] 위는 해시 요소가 인덱스 값을 통해 액세스 할 수있는 해시 배열입니다.하지만이 이름을 어떻게 해시 이름으로 사용할 수 있습니까? –

+0

나는 {1 => [{: col3 => 0, : col4 => 0, : col1 => 1, : col2 => 1}, 2 => [{: col1 => 0}] }하지만이 경우 값에 액세스하는 방법 .. 내가 h [1] [: col1]에 대한 값을 얻고 싶다고 말하는가 ?? –

+0

원할 경우 열을 정적으로 사용할 수 있으므로 열 이름에 대한 인덱스를 제공하는 상수를 정의 할 수 있습니다. COLUMN_INDEX = {1 => : col1, 2 => : col2}와 같은 것입니다. h [1] [COLUMN_INDEX [: col1]]. 그것은 꽤 보이지 않는다. 내가 수업에 넣는 것보다 더 복잡한 것은 – roo

1

경우 데이터 세트가 크고, 당신은 빠르게 조회하고보다 유연한 디자인 (디자인이 발전함에 따라 나중에 열을 추가 할 것입니다 경우 어떻게됩니까?), 당신은 인 -이 고려할 수를 갖고 싶어 supermodel 같은 메모리 데이터베이스. 그렇게하면 바퀴의 재발생을 피할 수 있고 적은 노력으로 많은 기능과 유연성을 얻을 수 있습니다.