2016-09-02 3 views
1

Scalaのアクセスリストオブジェクトを評価し、それらには、Scalaのリストオブジェクトにアクセスし、それらに

を評価し、私は私がオブジェクトにアクセスしたい、例えば、リストからリスト

val example = List(ItemDesc(6164,6165,6166,6195,The values are correct), ItemDesc(14879,14879,14879,14894,The values are ok), ItemDesc(19682,19690,19682,19694,The values are good)) 

「を有するItemDesc」。そして、偶数と奇数を得る。リスト

ItemDescで最初のオブジェクトを取っ例えば

私が知りたい、

evenPlacesCount = 6164(6164,6165,6165,6195、値が正しいです) 6166

oddPlacesCount = 6165 + 6195

私はそれが平野一覧(6164,6165,6166,6195であるかどうかを評価するためのコードを持って、値がcorrecですt)。

しかし、上記の「例」のようなリストオブジェクトがある場合、どのように計算すればよいですか?

+0

ItemDescのタイプは何ですか?それはケースクラスですか? – Samar

+0

"プレーンなリストであるかどうかを評価するコードがあります"、評価するために使用しているコードを見たいと思います。 – Kakaji

+0

@Phaniはこれで解決しましたか? – slouc

答えて

1

これは何か?

case class ItemDesc(a: Int, b: Int, c: Int, d: Int, desc: String) 
case class Pair(even: Int, odd: Int) 

val example = List(
    ItemDesc(6164, 6165, 6166, 6195, "The values are correct"), 
    ItemDesc(14879, 14879, 14879, 14894, "The values are ok"), 
    ItemDesc(19682, 19690, 19682, 19694, "The values are good") 
) 

def evenOddCount(item: ItemDesc): Pair = Pair(item.a + item.c, item.b + item.d) 
def addEvenOddCounts(first: Pair, second: Pair): Pair = Pair((first.even + second.even), (first.odd + second.odd)) 

val evenOddPair = evenOddCount(ItemDesc(6164, 6165, 6166, 6195, "The values are correct")) // Pair(12330,12360) 
val allPairs = example.map(evenOddCount) // List(Pair(12330,12360), Pair(29758,29773), Pair(39364,39384)) 
val totalPair = example.map(evenOddCount).reduce(addEvenOddCounts) // Pair(81452,81517) 
+0

非常にきれいにモデル化されました! – Samar

関連する問題