質問編集履歴

1

質問内容の充実化

2017/04/13 04:11

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -71,3 +71,123 @@
71
71
 
72
72
 
73
73
  大変、お手数をおかけしますが、ご教授よろしくお願いします。
74
+
75
+
76
+
77
+
78
+
79
+ ---------------------------------
80
+
81
+ ご指摘をいただきましたので、編集させて頂きます。
82
+
83
+
84
+
85
+
86
+
87
+ 仕様があやふやで失礼いたしました。
88
+
89
+
90
+
91
+ ご質問いただきました、想定して頂いた内容で認識はあっていると思います。
92
+
93
+
94
+
95
+ 今回、なぜ、このような投稿をしたかを、記載させて頂きます。
96
+
97
+
98
+
99
+ データベースからデータを取得し、指定の並び順、
100
+
101
+ 更新日時でソートしたリストを表示しようと考えております。
102
+
103
+
104
+
105
+ 単純にデータベース上に、並び順であったり、優先順のフィールドを設けておけば
106
+
107
+ 解決するような内容ですが、データベースから取得したデータの更新頻度が多いため、
108
+
109
+ すべてのデータに並び順を持たせてしまうと、追加・削除毎に、採番し直す必要があった為、
110
+
111
+ 他の方法を考えておりました。
112
+
113
+
114
+
115
+ 考えた方法として、並び替えるデータがどのデータの後ろになるのか?を保持したテーブルを用意し、
116
+
117
+ プログラムで一覧を作成する際に、保持したテーブルを参照しデータの並び替えを行おうと考えております。
118
+
119
+
120
+
121
+ ``` scala
122
+
123
+ // データベースより取得したリスト
124
+
125
+ list = Seq("あ", "い", "う", "え", "お", "か")
126
+
127
+
128
+
129
+ // 並び替え対象リスト
130
+
131
+ order = Seq(Order("お","あ"), Order("え","お"))
132
+
133
+
134
+
135
+ case clase Order(
136
+
137
+ value: String, // 挿入する値
138
+
139
+ targetValue:String // ターゲットとなる値
140
+
141
+ )
142
+
143
+
144
+
145
+ // 結果
146
+
147
+ newlist = Seq("あ", "お", "え", "い", "う", "か")
148
+
149
+ ```
150
+
151
+
152
+
153
+ 処理方法としましては、
154
+
155
+
156
+
157
+ 1.データを取得(A)
158
+
159
+ A ... リスト
160
+
161
+ B ... 並び替え対象リスト
162
+
163
+
164
+
165
+ 2.リスト(A)を分割
166
+
167
+ 分割条件: リスト(A)のデータが、並び替え対象リスト(B)の"挿入する値"と一致、かつ、ターゲットとなる値が、がリスト(A)に含まれている
168
+
169
+
170
+
171
+ A` ... 条件が一致せず残ったリスト
172
+
173
+ C ... 条件の一致したリスト
174
+
175
+
176
+
177
+ 3.条件が一致せず残ったデータ(A`)を、forなどで1件づつ処理を行い、並び替え対象のデータと一致した場合、Cのリストからデータを取得し、A`に挿入
178
+
179
+
180
+
181
+ と考えておりました。
182
+
183
+
184
+
185
+ プログラムを組んでうちに、3の段階時点で、"お"のつぎが"え"とならないのではないかと疑問に思い、今回、質問内容をやりたいことのみを記載し質問してしまいました。
186
+
187
+
188
+
189
+ 難しく考え過ぎているのかもしれませんが、ご教授いただけると幸いです。
190
+
191
+
192
+
193
+ お手数をおかけしますが、よろしくお願い致します。