質問編集履歴

5

a

2017/03/31 04:36

投稿

flan
flan

スコア146

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,14 @@
1
1
  JavaのArrayLIstのスレッドセーフについて質問です。
2
+
3
+ ---
2
4
 
3
5
  Java SIlver 黒本より
4
6
 
7
+
8
+
5
- ////////////////ソース1 /////////////
9
+ ソース1
10
+
11
+ ---
6
12
 
7
13
  ```Java
8
14
 
@@ -38,7 +44,9 @@
38
44
 
39
45
  ```
40
46
 
41
- ///////////////////ソース2 ////////////////
47
+ ソース2
48
+
49
+ ---
42
50
 
43
51
  ```Java
44
52
 
@@ -84,7 +92,9 @@
84
92
 
85
93
  *クラスの宣言とmainメソッドは省略しました。
86
94
 
95
+
96
+
87
- /////////////////////
97
+ ---
88
98
 
89
99
  このソース1の実行した結果として
90
100
 
@@ -92,7 +102,11 @@
92
102
 
93
103
  が出力。
94
104
 
105
+
106
+
95
- ///////////////////////
107
+ ---
108
+
109
+
96
110
 
97
111
  ソース2は実行時に例外がスローされるとあります。
98
112
 
@@ -100,13 +114,19 @@
100
114
 
101
115
 
102
116
 
117
+
118
+
119
+
120
+
103
121
  その理由として、ループで読みだしている最中にremoveメソッドを呼び出しているからとあります。
104
122
 
105
- しかし、ソース1でもremoveメソッドを呼び出しているのにソース1では例外がスローされません。これはなぜでしょうか?
123
+ しかし、ソース1でもremoveメソッドを呼び出しているのにソース1では例外がスローされません。**__これはなぜでしょうか?__**
106
124
 
107
125
 
108
126
 
109
127
  私なりの考察。
128
+
129
+ ---
110
130
 
111
131
  ソース1では拡張for文2回目のループでremoveメソッドが処理され3買い目のループは要素がなくなり2回目で終わり、残りの要素に影響されない。
112
132
 
@@ -116,14 +136,6 @@
116
136
 
117
137
 
118
138
 
139
+ ---
140
+
119
141
  よろしくお願いします。
120
-
121
- ```html
122
-
123
- <div id="test">
124
-
125
- <p>これはテストです。</p>
126
-
127
- </div>
128
-
129
- ```

4

2017/03/31 04:36

投稿

flan
flan

スコア146

test CHANGED
File without changes
test CHANGED
@@ -38,9 +38,9 @@
38
38
 
39
39
  ```
40
40
 
41
+ ///////////////////ソース2 ////////////////
41
42
 
42
-
43
- ///////////////////ソース2 ////////////////
43
+ ```Java
44
44
 
45
45
  Arraylist<String> list = new ArrayList<>();
46
46
 
@@ -80,7 +80,7 @@
80
80
 
81
81
  }
82
82
 
83
-
83
+ ```
84
84
 
85
85
  *クラスの宣言とmainメソッドは省略しました。
86
86
 

3

2017/03/31 04:28

投稿

flan
flan

スコア146

test CHANGED
File without changes
test CHANGED
@@ -3,6 +3,8 @@
3
3
  Java SIlver 黒本より
4
4
 
5
5
  ////////////////ソース1 /////////////
6
+
7
+ ```Java
6
8
 
7
9
  Arraylist<String> list = new ArrayList<>();
8
10
 
@@ -34,7 +36,7 @@
34
36
 
35
37
  }
36
38
 
37
-
39
+ ```
38
40
 
39
41
 
40
42
 

2

2017/03/31 04:28

投稿

flan
flan

スコア146

test CHANGED
File without changes
test CHANGED
@@ -115,3 +115,13 @@
115
115
 
116
116
 
117
117
  よろしくお願いします。
118
+
119
+ ```html
120
+
121
+ <div id="test">
122
+
123
+ <p>これはテストです。</p>
124
+
125
+ </div>
126
+
127
+ ```

1

remove

2017/03/31 04:27

投稿

flan
flan

スコア146

test CHANGED
File without changes
test CHANGED
@@ -100,7 +100,7 @@
100
100
 
101
101
  その理由として、ループで読みだしている最中にremoveメソッドを呼び出しているからとあります。
102
102
 
103
- しかし、ソース1でも呼び出しているのにソース1では例外がスローされません。これはなぜでしょうか?
103
+ しかし、ソース1でもremoveメソッドを呼び出しているのにソース1では例外がスローされません。これはなぜでしょうか?
104
104
 
105
105
 
106
106