質問編集履歴
5
追記のコードを編集しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -97,14 +97,6 @@
|
|
97
97
|
import java.util.Arrays;
|
98
98
|
import java.util.Random;
|
99
99
|
|
100
|
-
class ThreadLearnsss extends Thread {
|
101
|
-
public void run() {
|
102
|
-
for (int i = 0; i < 30; i++) {
|
103
|
-
// i.getId();
|
104
|
-
}
|
105
|
-
}
|
106
|
-
}
|
107
|
-
|
108
100
|
class mains {
|
109
101
|
public static void main(String[] args) {
|
110
102
|
Thread[] th = new Thread[30];
|
@@ -119,10 +111,9 @@
|
|
119
111
|
calendar.setTime(date);
|
120
112
|
Date d1 = calendar.getTime();
|
121
113
|
calendar.add(Calendar.SECOND, nums[i]);
|
122
|
-
|
114
|
+
|
123
|
-
|
115
|
+
System.out.printf("%d %s %s %s %d %s %s\n", th[i].getId(), "start", sdf.format(date), "wait",
|
124
|
-
|
116
|
+
nums[i], sdf.format(d1), "end");
|
125
|
-
}
|
126
117
|
}
|
127
118
|
|
128
119
|
for (Thread t : th) {
|
4
追記のコードを修正しなおしました
test
CHANGED
File without changes
|
test
CHANGED
@@ -107,35 +107,31 @@
|
|
107
107
|
|
108
108
|
class mains {
|
109
109
|
public static void main(String[] args) {
|
110
|
-
for (int h = 0; h < 30; h++) {
|
111
|
-
|
110
|
+
Thread[] th = new Thread[30];
|
112
|
-
|
111
|
+
Date date = new Date();
|
113
|
-
|
112
|
+
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
|
114
|
-
|
113
|
+
Calendar calendar = Calendar.getInstance();
|
114
|
+
int[] nums = new Random().ints(30, 2, 11).toArray();
|
115
|
+
Arrays.sort(nums);
|
116
|
+
for (int i = 0; i < 30; i++) {
|
117
|
+
th[i] = new Thread();
|
118
|
+
th[i].start();
|
119
|
+
calendar.setTime(date);
|
120
|
+
Date d1 = calendar.getTime();
|
121
|
+
calendar.add(Calendar.SECOND, nums[i]);
|
115
122
|
for (Thread s : th) {
|
116
|
-
s.start();
|
117
|
-
int[] nums = new Random().ints(30, 2, 11).toArray();
|
118
|
-
Arrays.sort(nums);
|
119
|
-
for (int i = 0; i < 30; i++) {
|
120
|
-
th[i] = new Thread();
|
121
|
-
th[i].start();
|
122
|
-
calendar.setTime(date);
|
123
|
-
Date d1 = calendar.getTime();
|
124
|
-
calendar.add(Calendar.SECOND, nums[i]);
|
125
|
-
|
123
|
+
System.out.printf("%d %s %s %s %d %s %s\n", s.getId(), "start", sdf.format(date), "wait",
|
126
|
-
|
124
|
+
nums[i], sdf.format(d1), "end");
|
127
|
-
|
125
|
+
}
|
126
|
+
}
|
128
127
|
|
129
|
-
}
|
130
|
-
|
131
|
-
|
128
|
+
for (Thread t : th) {
|
132
|
-
|
129
|
+
try {
|
133
|
-
|
130
|
+
t.join();
|
134
|
-
|
131
|
+
} catch (InterruptedException e) {
|
135
|
-
|
132
|
+
System.out.println(e);
|
136
|
-
|
133
|
+
} finally {
|
137
|
-
|
134
|
+
System.out.printf("%s", "program end");
|
138
|
-
}
|
139
135
|
}
|
140
136
|
}
|
141
137
|
}
|
3
追記でコードを並べ替えました
test
CHANGED
File without changes
|
test
CHANGED
@@ -89,3 +89,56 @@
|
|
89
89
|
```
|
90
90
|
### 試したこと
|
91
91
|
Arrays.sort(nums);とSystem.out.printfをfor文の外に出した。当然ですがSystem.out.printfのnums[i]がエラーになる
|
92
|
+
### 追記
|
93
|
+
```java
|
94
|
+
import java.util.Calendar;
|
95
|
+
import java.text.SimpleDateFormat;
|
96
|
+
import java.util.Date;
|
97
|
+
import java.util.Arrays;
|
98
|
+
import java.util.Random;
|
99
|
+
|
100
|
+
class ThreadLearnsss extends Thread {
|
101
|
+
public void run() {
|
102
|
+
for (int i = 0; i < 30; i++) {
|
103
|
+
// i.getId();
|
104
|
+
}
|
105
|
+
}
|
106
|
+
}
|
107
|
+
|
108
|
+
class mains {
|
109
|
+
public static void main(String[] args) {
|
110
|
+
for (int h = 0; h < 30; h++) {
|
111
|
+
Thread[] th = new Thread[30];
|
112
|
+
Date date = new Date();
|
113
|
+
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
|
114
|
+
Calendar calendar = Calendar.getInstance();
|
115
|
+
for (Thread s : th) {
|
116
|
+
s.start();
|
117
|
+
int[] nums = new Random().ints(30, 2, 11).toArray();
|
118
|
+
Arrays.sort(nums);
|
119
|
+
for (int i = 0; i < 30; i++) {
|
120
|
+
th[i] = new Thread();
|
121
|
+
th[i].start();
|
122
|
+
calendar.setTime(date);
|
123
|
+
Date d1 = calendar.getTime();
|
124
|
+
calendar.add(Calendar.SECOND, nums[i]);
|
125
|
+
System.out.printf("%d %s %s %s %d %s %s\n", s.getId(), "start", sdf.format(date), "wait",
|
126
|
+
nums[i], sdf.format(d1), "end");
|
127
|
+
}
|
128
|
+
|
129
|
+
}
|
130
|
+
|
131
|
+
for (Thread t : th) {
|
132
|
+
try {
|
133
|
+
t.join();
|
134
|
+
} catch (InterruptedException e) {
|
135
|
+
System.out.println(e);
|
136
|
+
} finally {
|
137
|
+
System.out.printf("%s", "program end");
|
138
|
+
}
|
139
|
+
}
|
140
|
+
}
|
141
|
+
}
|
142
|
+
}
|
143
|
+
|
144
|
+
```
|
2
出力結果を追加しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -53,5 +53,39 @@
|
|
53
53
|
}
|
54
54
|
|
55
55
|
```
|
56
|
+
### 出力
|
57
|
+
```java
|
58
|
+
15 start 08:25:53 wait 5 08:25:58 end
|
59
|
+
16 start 08:25:53 wait 3 08:25:56 end
|
60
|
+
17 start 08:25:53 wait 5 08:25:58 end
|
61
|
+
18 start 08:25:53 wait 9 08:26:02 end
|
62
|
+
19 start 08:25:53 wait 7 08:26:00 end
|
63
|
+
20 start 08:25:53 wait 8 08:26:01 end
|
64
|
+
21 start 08:25:53 wait 4 08:25:57 end
|
65
|
+
22 start 08:25:53 wait 7 08:26:00 end
|
66
|
+
23 start 08:25:53 wait 6 08:25:59 end
|
67
|
+
24 start 08:25:53 wait 2 08:25:55 end
|
68
|
+
25 start 08:25:53 wait 2 08:25:55 end
|
69
|
+
26 start 08:25:53 wait 4 08:25:57 end
|
70
|
+
27 start 08:25:53 wait 2 08:25:55 end
|
71
|
+
28 start 08:25:53 wait 7 08:26:00 end
|
72
|
+
29 start 08:25:53 wait 6 08:25:59 end
|
73
|
+
30 start 08:25:53 wait 7 08:26:00 end
|
74
|
+
31 start 08:25:53 wait 10 08:26:03 end
|
75
|
+
32 start 08:25:53 wait 9 08:26:02 end
|
76
|
+
33 start 08:25:53 wait 2 08:25:55 end
|
77
|
+
34 start 08:25:53 wait 6 08:25:59 end
|
78
|
+
35 start 08:25:53 wait 9 08:26:02 end
|
79
|
+
36 start 08:25:53 wait 7 08:26:00 end
|
80
|
+
37 start 08:25:53 wait 10 08:26:03 end
|
81
|
+
38 start 08:25:53 wait 7 08:26:00 end
|
82
|
+
39 start 08:25:53 wait 4 08:25:57 end
|
83
|
+
40 start 08:25:53 wait 8 08:26:01 end
|
84
|
+
41 start 08:25:53 wait 4 08:25:57 end
|
85
|
+
42 start 08:25:53 wait 9 08:26:02 end
|
86
|
+
43 start 08:25:53 wait 3 08:25:56 end
|
87
|
+
44 start 08:25:53 wait 8 08:26:01 end
|
88
|
+
program end
|
89
|
+
```
|
56
90
|
### 試したこと
|
57
91
|
Arrays.sort(nums);とSystem.out.printfをfor文の外に出した。当然ですがSystem.out.printfのnums[i]がエラーになる
|
1
該当コードに一部ではなく全てのプログラムを提示しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,19 @@
|
|
1
1
|
以下のようなコードを書いて実行したのですが、乱数がばらばらに表示してしまいます。配列に格納して昇順に出力したいのですが、どなたか解決方法教えてください。
|
2
2
|
### 該当コード
|
3
3
|
```java
|
4
|
+
import java.util.Calendar;
|
5
|
+
import java.text.SimpleDateFormat;
|
6
|
+
import java.util.Date;
|
7
|
+
import java.util.Arrays;
|
8
|
+
import java.util.Random;
|
9
|
+
|
10
|
+
class ThreadLearnss extends Thread {
|
11
|
+
public void run() {
|
12
|
+
for (int i = 0; i < 30; i++) {
|
13
|
+
}
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
4
17
|
class mains {
|
5
18
|
public static void main(String[] args) {
|
6
19
|
for (int h = 0; h < 30; h++) {
|
@@ -25,6 +38,20 @@
|
|
25
38
|
}
|
26
39
|
|
27
40
|
}
|
41
|
+
|
42
|
+
for (Thread t : th) {
|
43
|
+
try {
|
44
|
+
t.join();
|
45
|
+
} catch (InterruptedException e) {
|
46
|
+
System.out.println(e);
|
47
|
+
} finally {
|
48
|
+
System.out.printf("%s", "program end");
|
49
|
+
}
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
}
|
54
|
+
|
28
55
|
```
|
29
56
|
### 試したこと
|
30
57
|
Arrays.sort(nums);とSystem.out.printfをfor文の外に出した。当然ですがSystem.out.printfのnums[i]がエラーになる
|