teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

ループのたびにmapを呼ぶのは非効率なので修正

2018/08/31 03:31

投稿

kakajika
kakajika

スコア3133

answer CHANGED
@@ -8,5 +8,6 @@
8
8
  もちろん、filterNot+containsで書くこともできます。その場合はこんな感じで
9
9
 
10
10
  ```kotlin
11
+ val listCodes = dbList.map { it.divisionCode }
11
- val uncontainedKeys = rawMap.keys.filterNot { dbList.map { it.divisionCode }.contains(it) }
12
+ val uncontainedKeys = rawMap.keys.filterNot(listCodes::contains)
12
13
  ```

1

質問に合わせてコード修正

2018/08/31 03:31

投稿

kakajika
kakajika

スコア3133

answer CHANGED
@@ -2,11 +2,11 @@
2
2
  [リファレンス](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/minus.html)
3
3
 
4
4
  ```kotlin
5
- val uncontainedKeys = rawMap.keys - list
5
+ val uncontainedKeys = rawMap.keys - dbList.map { it.divisionCode }
6
6
  ```
7
7
 
8
8
  もちろん、filterNot+containsで書くこともできます。その場合はこんな感じで
9
9
 
10
10
  ```kotlin
11
- val uncontainedKeys = rawMap.keys.filterNot(list::contains)
11
+ val uncontainedKeys = rawMap.keys.filterNot { dbList.map { it.divisionCode }.contains(it) }
12
12
  ```