не совсем то, хотя использовать и можно. Вот две реализации модельного примера: надо подсчитать сколько раз встречается каждое из значений перечисления.
Раз (массив):
https://play.kotlinlang.org/#eyJ2ZXJzaW9uIjoiMS4zLjExIiwicGxhdGZvcm0iOiJqYXZhIiwiYXJncyI6IiIsImpzQ29kZSI6IiIsIm5vbmVNYXJrZXJzIjp0cnVlLCJ0aGVtZSI6ImlkZWEiLCJmb2xkZWRCdXR0b24iOnRydWUsInJlYWRPbmx5IjpmYWxzZSwiY29kZSI6ImltcG9ydCBrb3RsaW4ucmFuZG9tLlJhbmRvbVxuXG5lbnVtIGNsYXNzIEVudW0ge1xuICAgIE9ORSwgVFdPLCBUSFJFRVxufVxuXG5mdW4gbWFpbigpIHtcbiAgICB2YWwgc2l6ZSA9IEVudW0udmFsdWVzKCkuc2l6ZVxuICAgIHZhciBjb3VudGVycyA9IEludEFycmF5KHNpemUsIHsgMCB9KVxuXG4gICAgcmVwZWF0KDEwKSB7XG4gICAgICAgIHZhciByID0gUmFuZG9tLm5leHRJbnQoc2l6ZSlcbiAgICAgICAgdmFyIGVuID0gRW51bS52YWx1ZXMoKVtyXVxuICAgICAgICBwcmludChcIiRlbiBcIilcbiAgICAgICAgY291bnRlcnNbZW4ub3JkaW5hbF0rK1xuICAgIH1cblxuICAgIHByaW50bG4oKVxuICAgIGZvciAoZW4gaW4gRW51bS52YWx1ZXMoKSlcbiAgICAgICAgcHJpbnQoXCIke2VufTogJHtjb3VudGVyc1tlbi5vcmRpbmFsXX0gXCIpXG59In0=
Два (Map):
https://play.kotlinlang.org/#eyJ2ZXJzaW9uIjoiMS4zLjExIiwicGxhdGZvcm0iOiJqYXZhIiwiYXJncyI6IiIsImpzQ29kZSI6IiIsIm5vbmVNYXJrZXJzIjp0cnVlLCJ0aGVtZSI6ImlkZWEiLCJmb2xkZWRCdXR0b24iOnRydWUsInJlYWRPbmx5IjpmYWxzZSwiY29kZSI6ImltcG9ydCBrb3RsaW4ucmFuZG9tLlJhbmRvbVxuXG5lbnVtIGNsYXNzIEVudW0ge1xuICAgIE9ORSwgVFdPLCBUSFJFRVxufVxuXG5mdW4gbWFpbigpIHtcbiAgICB2YWwgc2l6ZSA9IEVudW0udmFsdWVzKCkuc2l6ZVxuXG4gICAgdmFyIGNvdW50ZXJzOiBNdXRhYmxlTWFwPEVudW0sIEludD4gPSBtdXRhYmxlTWFwT2YoKVxuXG4gICAgZm9yIChlbiBpbiBFbnVtLnZhbHVlcygpKSB7XG4gICAgICAgIGNvdW50ZXJzLnB1dChlbiwgMClcbiAgICB9XG5cbiAgICByZXBlYXQoMTApIHtcbiAgICAgICAgdmFsIHIgPSBSYW5kb20ubmV4dEludChzaXplKVxuICAgICAgICB2YWwgZW4gPSBFbnVtLnZhbHVlcygpW3JdXG4gICAgICAgIHByaW50KFwiJGVuIFwiKVxuICAgICAgICBjb3VudGVyc1tlbl0gPSBjb3VudGVyc1tlbl0hISArIDFcbiAgICB9XG4gICAgcHJpbnRsbigpXG4gICAgZm9yIChlIGluIEVudW0udmFsdWVzKCkpIHtcbiAgICAgICAgcHJpbnQoXCIke2V9OiAke2NvdW50ZXJzW2VdfSBcIilcbiAgICB9XG5cbn0ifQ==
И что лучше? Замечу, что в первом варианте опасности выхода за пределы массива нет, поскольку индексирование всегда происходит только с помощью en.ordinal.
Что, если я захочу написать counters[3]?
Обсуждают сегодня