回答編集履歴

2

追記1

2018/06/29 04:42

投稿

BeatStar
BeatStar

スコア4958

test CHANGED
@@ -28,52 +28,66 @@
28
28
 
29
29
 
30
30
 
31
- リスト構造は **LinkedList**<areaMaster> で生成していますね。これが原因なのでは?
31
+ ~~リスト構造は LinkedList で生成していますね。これが原因なのでは?と思いました。
32
+
33
+ ~~
34
+
35
+ ~~で、気になったので「LinkedList ArrayList 違い」及び「LinkedList 順番が狂う」と検索すると、~~
32
36
 
33
37
 
34
38
 
35
- と思いました。
39
+ ~~根拠1: [LinkedList](http://www1.megaegg.ne.jp/~yasu/ProgrammerPage/collection/linkedlist.html)~~
36
40
 
37
41
 
38
42
 
39
- で、気になっので「LinkedList ArrayList 違い」及び「LinkedList 順番が狂う」と検索すると、
43
+ ~~がヒットしまし。~~
40
44
 
41
45
 
42
46
 
43
- 根拠1: [LinkedList](http://www1.megaegg.ne.jp/~yasu/ProgrammerPage/collection/linkedlist.html)
47
+ ~~ArrayListは「次のオブジェクトへのポインタ」を持っているような状態なのに対し、LinkedListは「前と後~~~~ろのオブジェクトへのポインタ」を持っている状態です。 ( C言語風にいうと。 )~~
44
48
 
45
49
 
46
50
 
47
- がヒットしました。
51
+ ~~で、~~
48
52
 
49
53
 
50
54
 
51
- ArrayListは「次のオブジェクトへのポインタ」を持っているような状態なの対し、LinkedListは「前と後ろのオブジェクトへのポインタ」持っいる状態です。 ( C言語風にいうと。 )
55
+ ~~> LinkedListは自分で順序を持ってためインデックスを指定してダイレクトにオブジェクトを読み出す場合は、インデックスが全体の前半にある場合は先頭から、後半にある場合は後から順番数え読み出します。
56
+
57
+ ( from 根拠1のページ )
58
+
59
+ ~~
60
+
61
+ ~~とあります。 ~~
52
62
 
53
63
 
54
64
 
65
+ ~~ということは、C++のiteratorに相当するもの ( Javaにも iterator自体はあるようですが使ったことない... ) (根拠2: [[Java] Iteratorのメモ](https://qiita.com/yoshi389111/items/c24f8beefb7b96cad921))
66
+
67
+ が後ろにある状態でそれを元に戻していないから後ろから読み込まれているため、ソート済みでない感じになっていると思います。
68
+
55
- で、
69
+ ~~
70
+
71
+ ~~どうしてもLinkedListを使いたいなら、**iteratorに相当するやつで先頭に持ってきて...**とするか、
72
+
73
+ **ArrayListの方を使うか...**だと思います。
74
+
75
+ ( iteratorを使わなくても先頭にiteratorに相当するやつを前に持ってくることができればそれでいいし。 )~~
56
76
 
57
77
 
58
78
 
59
- > LinkedListは自分で順序を持ってないためインデックスを指定してダイレクトにオブジェクトを読み出す場合は、インデックスが全体の前半にある場合は先頭から、後半にある場合は後から順番を数えて読み出します。
79
+ [追記1]
60
80
 
61
- ( from 根拠1ページ )
81
+ どうやら、takezoux2さんご指摘によると
82
+
83
+ > ArrayListはリスト構造ではなく、内部に配列を持った実装です。
84
+
85
+ また、LinkedListも追加された要素の順番が変化することはありません。
86
+
87
+ なので、違うみたいです。取り消し線で取り下げますね。
62
88
 
63
89
 
64
90
 
65
- ます。
91
+ たぶん、私が最初に挙げた内容が違うなら、「そもそもの前提でるデータ設定がなんらかの理由(ライブラリがバグを含んでいる等)によっての操作ミス」か「(〃)によってのソートミス」が考えられます
66
92
 
67
-
68
-
69
- ということは、C++のiteratorに相当するもの ( Javaにも iterator自体はあるようですが使ったことない... ) (根拠2: [[Java] Iteratorのメモ](https://qiita.com/yoshi389111/items/c24f8beefb7b96cad921))
70
-
71
- が後ろにある状態でそれを元に戻していないから後ろら読み込まれているためソート済みでな感じになっていると思います
93
+ それかDBか引っ張ってくるときのデータとが壊れている使方が間違っている
72
-
73
-
74
-
75
- どうしてもLinkedListを使いたいなら、**iteratorに相当するやつで先頭に持ってきて...**とするか、
76
-
77
- **ArrayListの方を使うか...**だと思います。
78
-
79
- ( iteratorを使わなくても先頭にiteratorに相当するやつを前に持ってくることができればそれでいいし。 )

1

修正

2018/06/29 04:42

投稿

BeatStar
BeatStar

スコア4958

test CHANGED
@@ -72,12 +72,6 @@
72
72
 
73
73
 
74
74
 
75
- 質問者さんはカセットテープはご存知ですか? ( 最近の子どもだと名前すら...っていう場合があるようなので。質問者さんがおいくつなのか不明なので。無くてもいいですが。 ) 一度再生したら巻き戻ししないといけませんよね?
76
-
77
- それを「巻き戻しせずに」再生ボタンを押したけどなぜか再生されない...みたいな状態になっていますね。
78
-
79
-
80
-
81
75
  どうしてもLinkedListを使いたいなら、**iteratorに相当するやつで先頭に持ってきて...**とするか、
82
76
 
83
77
  **ArrayListの方を使うか...**だと思います。