2017-04-03 1 views
0

안녕하세요, 나는 임의의 벡터에 추가 된 객체를 읽고 반복해야하는 자바 프로그램을 작성하고 있습니다. 실제로 Math.random() * Vector.size()에 의해 임의의 숫자를 갖고 싶었고 반복하지 않으려면 배열에 임의의 숫자를 유지하거나 다음 번에 다시 읽지 않도록해야하지만 메소드 나 이 목적을 위해 뭔가 ... 나는 어떤 responce에 대한 감사 할 것벡터에서 임의의 객체를 읽습니다. 자바

당신은 그 값을 사용하여 벡터의 요소를 읽을 다음, 셔플, 벡터의 크기까지 1에서 시퀀스를 생성 할 수
+1

시도한 것을 게시하십시오. 우리는 단지 코드를 작성하는 습관이 아닙니다. – Michael

+1

또한'Vector'는 요즘 Java의 시대에 뒤진 컬렉션이며, 꼭 사용해야하는 경우가 아니면 사용해서는 안됩니다. 'ArrayList'가 바람직합니다. – Michael

+0

나에게 코드를 보내고 싶지는 않지만 클래스 또는 반복없는 벡터에서 임의의 요소를 읽는 방법이 있는지 알고 싶다 – Sarasr

답변

2

:

Vector v; 
List<Integer> values = new ArrayList<>(); 
for (int i=0; i < v.size(); ++i) { 
    values.add(i); 
} 
Collections.shuffle(values); 

// now read the value in the vector using this random sequence 
for (int i=0; i < values.size(); ++i) { 
    System.out.println(vector.get(values.get(i))); 
} 
0

벡터를 읽을 때 벡터에서 값을 간단히 제거 할 수 있습니다.

+0

그래, 절차 후에 요소가 필요해.) :( – Sarasr

+0

벡터 사본을 사용하십시오 :) – Lennier

+0

음, vector2 = (Vector) vector 1.clone()으로 수행해야합니까? – Sarasr

관련 문제