이것은 매우 간단한 질문이지만 초보자이며 몇 시간 동안이 부분을 고수했습니다. 쉬운 방법을 찾고있는 것이 아니라 대신 내 코드에서 어떤 일이 일어나고 있는지, 왜 작동하지 않는지 이해하고 싶습니다. 내 문제는 :사용자 정의 객체의 Arraylist
임의의 숫자와 현재 시간으로 노드 클래스를 만듭니다. 저장소 클래스를 만들고 해당 노드를 목록/배열에 저장합니다. 메인 클래스를 사용하여 50 개의 노드를 만들고 표시합니다.
50 회 실행하여 목록을 가져올 때 목록 인쇄를 만들어서 내 코드가 실행 중인지 확인하고 모두 동일한 시간을 갖도록 확인할 수있었습니다. 즉, 다른 노드가 내 목록에 저장되지 않고 대신 루프가 실행될 때마다 지워집니다. 왜 그런가요?
내 코드가 부착되어
홈페이지 :
public class NodeSort {
public static void main(String[] args)
{
int c = 0;
while (c < 50)
{
Storage.add();
c++;
}
}
}
노드 :
public class Node
{
public static int num;
public static long time;
public Node()
{
num = Random.getNum();
time = System.nanoTime();
}
public static long getTime()
{
return time;
}
public static int getNum()
{
return num;
}
}
저장 :
public class Storage
{
public static ArrayList<Node> list = new ArrayList<>();
public static void add()
{
list.add(new Node());
}
나는 X = 1 시간을받을 수 있나요 때 50, 같은 시간에 인쇄합니다. 50 가지가 아닌 50 번.
인쇄 코드를 표시하십시오. –
매우 빠른 속도로 실행되기 때문에 동일한 난수가 생성 될 수 있습니다. –
출력을 자세히 설명해 주시겠습니까? 나는 그것에 확실하지 않다. 출력물을 정확히 어디에 인쇄하고 있습니까? 또한'nanoTime()'을 왜 사용하고 있습니까? –