벡터 벡터에 벡터를 넣고 싶습니다. 나는 이것을 반복하고 결국에는 마지막으로 추가 된 벡터 만 있지만, 추가하려는 벡터의 수만큼 자주 사용합니다.여러 벡터를 벡터 벡터에 추가하면 작동하지 않습니다. Java
public void initVectors() {
rows = new Vector<Vector<String>>();
Vector<String> data = new Vector<String>();
Vector<String> t = new Vector<String>();
String aLine;
try {
FileInputStream fin = new FileInputStream("module.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fin));
// extract data
while ((aLine = br.readLine()) != null) {
StringTokenizer st = new StringTokenizer(aLine, ",");
t.clear();
while (st.hasMoreTokens()) {
t.addElement(st.nextToken());
// System.out.println(st.nextToken());
}
System.out.println(t);
System.out.println("add it");
rows.addElement(t);
}
Enumeration vEnum = rows.elements();
System.out.println("Elements in vector:");
while (vEnum.hasMoreElements()) {
System.out.print(vEnum.nextElement());
System.out.println();
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
내 출력된다 :
[Physik, 6 :
[GDI 1, 4, 1.0]
그것이
[Physik, 6, 130]
그 벡터
요소를 추가 , Vector
t
row
는 단지 참조를 유지 1.3]
[Physik, 6, 130]
't'는'rows'에 다시 추가 할 때 여전히 동일한 참조입니다. – irrelephant
답변 해 주셔서 감사합니다. 하지만 어떻게해야합니까? – Kinnocchio
사이드 노트 : Vector 대신 ArrayList를 사용하십시오 (스레드 안전성이 필요한 경우 Collections.synchronizedList (새 ArrayList())). Enumeration 대신 Iterator를 사용하십시오. – ignis