Where <-> filter #Kotlinコレクション操作01

Kotlinのコレクション操作シリーズです。

.NETのWhere()はKotlinだとfilter()だそうで。
Javaと同じですね。

整数1~10を持ったリストを偶数と奇数に分けるサンプルです。

C# / VB.NET

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqSample
{
    class Program
    {
        static void Main(string[] args)
        {
            var myNums = new List<int> {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
            var myEvenNums = myNums.Where(x => x % 2 == 0); // 偶数
            var myOddNums = myNums.Where(x => x % 2 == 1);  // 奇数
        
            Console.WriteLine($"Even nums : [{String.Join(", ", myEvenNums)}]");
            Console.WriteLine($"Odd  nums : [{String.Join(", ", myOddNums)}]");
        }
    }
}
Imports System.Collections.Generic

Module MainModule

    Sub Main()
        Dim myNums As New List(Of Integer) From {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
        Dim myEvenNums = myNums.Where(Function(x) x Mod 2 = 0)  '偶数
        Dim myOddNums = myNums.Where(Function(x) x Mod 2 = 1)   '奇数
        
        Console.WriteLine($"Even nums : [{String.Join(", ", myEvenNums)}]")
        Console.WriteLine($"Odd  nums : [{String.Join(", ", myOddNums)}]")
    End Sub

End Module

Kotlin

fun main(args: Array<String>) {
    val nums = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
    val evenNums = nums.filter { x -> x % 2 == 0 }   // 偶数
    val oddNums = nums.filter { x -> x % 2 == 1 }    // 奇数

    println("Even nums : [${evenNums.joinToString(", ")}]")
    println("Odd  nums : [${oddNums.joinToString(", ")}]")
}

Java

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.*;

class StreamSample01 {
    public static void main(String args[]) {
        List<Integer> nums = new ArrayList<Integer>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
        Stream<Integer> evenNums = nums.stream().filter(x -> x % 2 == 0);   // 偶数
        Stream<Integer> oddNums = nums.stream().filter(x -> x % 2 == 1);    // 奇数
        
        System.out.println("Even nums : [" + String.join(", ", evenNums.map(x -> x.toString()).collect(Collectors.toList())) + "]");
        System.out.println("Odd  nums : [" + String.join(", ", oddNums.map(x -> x.toString()).collect(Collectors.toList())) + "]");
    }
}

う~ん、Javaソースコードが長くなっちゃいますね。。。
Kotlinはすっきりと書けます。
パッと見も気持ちいいですね。

ymdevx3.hatenablog.com