2012-01-10 3 views
1

미안하지만이게 조금 기본적인 것처럼 보일지 모르지만 오늘 내 머리 속에 들어갈 수는 없습니다. 나는이 벡터를하고 난처럼 보인다는 ResultSet의 결과를 채우려이 그것을 할 수있는 올바른 방법인가결과가 중첩 된 벡터로 설정 되었습니까?

column1, column2, column3, column4, column5 

Vector<Vector<String>> myVector = new Vector<Vector<String>>(); 

      while (rs.next()) { 
          String column1 = rs.getString(1); 
          String column2 = rs.getString(2); 
          String column3 = rs.getString(3); 
          String column4 = rs.getString(4); 
          String column5 = rs.getString(5); 
          myVector.put(column1, column2, column3, column4, column5); 

? 이 add()하지 put()이 때문에

TIA

+0

는 컴파일되지 않습니다, 나는 아니, 그렇지 않은 것을 제안 옳은. –

+0

귀하의 질문에 답하기 위해, 우리는 왜 당신이 Vector of Vector를 가지고 있는지, 그리고 그것이 진정으로 귀하의 의도인지 이해해야합니다. –

+0

"내부"컬렉션 대신 빈을 사용하는 "형식화 된"복사본과 달리 테이블 데이터의 "익명"사본을 원한다면 의미가 있습니다. – Viruzzo

답변

3

http://docs.oracle.com/javase/7/docs/api/java/util/Vector.html

VectorList 인터페이스를 구현합니다. 당신은 캐릭터 당 한 번 호출해야하므로 AFAIK 가변 인자와 요소를 삽입 지원 자바에는 컬렉션이 없습니다 :

while (rs.next()) { 
    Vector v = new Vector<>(); 
    v.add(rs.getString(1)); 
    v.add(rs.getString(2)); 
    v.add(rs.getString(3)); 
    v.add(rs.getString(4)); 
    v.add(rs.getString(5)); 
    myVector.add(v); 
} 

당신이 동기화를 필요로하지 않는,하지만 대신 VectorArrayList을 사용하는 것이 좋을 것이다 (심지어 그런 다음 더 좋은 방법이 있습니다.)

편집 : 할 수있는 가장 좋은 (IMO) 식으로는 다음과 같습니다 벡터는`put` 방법을 가지고 있지 않기 때문에이 이후

List<String[]> l = new ArrayList<>(); 

while (rs.next()) l.add(new String[] { 
     rs.getString(1), 
     rs.getString(2), 
     rs.getString(3), 
     rs.getString(4), 
     rs.getString(5) 
    }); 
+0

참고로 Guava는 목록을 만드는 데 필요한 다양한 변수를 제공합니다. http://docs.guava-libraries.googlecode.com/git-history/v11.0.1/javadoc/com/google/common/collect/Lists.html# newArrayList (E ...) –

+0

질문자가 실제로 벡터 벡터를 의도했는지 궁금합니다. –

+0

@JohnB (vararg라고 함) 나는 그것을별로 좋아하지 않는다 : 나는 상품을 이해하지만, 그것은 보이지 않는다. 나에게 매우 깨끗한 접근 방식. – Viruzzo

관련 문제