Untitled

mail@pastecode.io avatar
unknown
kotlin
25 days ago
1.2 kB
2
Indexable
Never
 /*
    Метод принимает два списка пар: (ключ и значение).
    Необходимо реализовать метод который будет возвращать результат пар по аналогии с inner join в SQL.
    * a[i].size == 2, b[i].size == 2

    Пример:
    a = [[1, 2], [2, 5], [4, 7]]
    b = [[1, 10], [15, 1], [2, 8]]
    join(a, b) => [[1, 2, 10], [2, 5, 8]]

     */
fun join(a: List<IntArray?>?, b: List<IntArray?>?): List<IntArray> {
    val map: Map<Integer, Integer> 
    val MutableList<IntArray> result = mutableListOf()
        
        if (a.size <= b.size) {
           map = a.toMap(a[0], a[1])
            for(element in b) {
                if(map.consistsKey(element[0])) {
                    result.add(IntArray(element[0], map[element[0]], element[1]))
                }
            }
        } else {
            map = b.toMap(a[0], a[1])
            for(element in a) {
                if(map.consistsKey(element[0])) {
                    result.add(IntArray(element[0], element[1], map[element[0]]))
                }
            }
        }
    return result
}
Leave a Comment