ANDROID_LIVE Telegram 362
​​Collections vs Sequences
#разработка #статьи

В Kotlin существует две сущности, которые позволяют выполнять операции на последовательности элементов: Collections и Sequences . И они значительно отличаются тем, как выполняют работу под капотом.

Начнём с того, что они по-разному работают над элементами.
В коллекциях операторы применяются для всей входящей цепочки объектов. То есть во время обработки создаётся новый, промежуточный список объектов, к элементам которого применяется оператор.
В последовательностях вся цепочка операторов применяется для каждого из элементов.
Можно сказать, что последовательности — это бесконечная сущность, а коллекции — конечная.

Когда же применять каждый из них?

1) Большое число операторов в цепочке. Например, мы хотим применить цепочку из операторов filter(), map() и take(). Из-за особенности работы коллекций, описанной выше, тут явно побеждают последовательности, так как на каждом из этапов не будет создаваться новый промежуточный список. Особое преимущество будет при наличии оператора take(), так как обработается только 5 элементов из последовательности.

2) То же самое и для операторов contains(), indexOf(), any(), none(), find(). Во всех них нужно найти только первый элемент, и нет смысла работать со всей цепочкой.

3) Когда же у вас есть оператор toList(), toSet(), то тут побеждают коллекции, так как возвращаемый список будет создан только один раз.

4) При наличии оператора sorted() или distinct() также стоит использовать коллекции. Последовательность, из-за особенности работы под капотом, создаст промежуточный список.

Также помните, что разница будет заметна только на довольно больших объёмах данных. Если в вашей коллекции 10-20 элементов, то вы не увидите никакой разницы.
Данная шпаргалка будет полезна при очередном собеседовании, так как это довольно частый вопрос.

Ну и тут ещё больше кейсов с иллюстрациями, а тут отличное сравление этих двух классов.



tgoop.com/android_live/362
Create:
Last Update:

​​Collections vs Sequences
#разработка #статьи

В Kotlin существует две сущности, которые позволяют выполнять операции на последовательности элементов: Collections и Sequences . И они значительно отличаются тем, как выполняют работу под капотом.

Начнём с того, что они по-разному работают над элементами.
В коллекциях операторы применяются для всей входящей цепочки объектов. То есть во время обработки создаётся новый, промежуточный список объектов, к элементам которого применяется оператор.
В последовательностях вся цепочка операторов применяется для каждого из элементов.
Можно сказать, что последовательности — это бесконечная сущность, а коллекции — конечная.

Когда же применять каждый из них?

1) Большое число операторов в цепочке. Например, мы хотим применить цепочку из операторов filter(), map() и take(). Из-за особенности работы коллекций, описанной выше, тут явно побеждают последовательности, так как на каждом из этапов не будет создаваться новый промежуточный список. Особое преимущество будет при наличии оператора take(), так как обработается только 5 элементов из последовательности.

2) То же самое и для операторов contains(), indexOf(), any(), none(), find(). Во всех них нужно найти только первый элемент, и нет смысла работать со всей цепочкой.

3) Когда же у вас есть оператор toList(), toSet(), то тут побеждают коллекции, так как возвращаемый список будет создан только один раз.

4) При наличии оператора sorted() или distinct() также стоит использовать коллекции. Последовательность, из-за особенности работы под капотом, создаст промежуточный список.

Также помните, что разница будет заметна только на довольно больших объёмах данных. Если в вашей коллекции 10-20 элементов, то вы не увидите никакой разницы.
Данная шпаргалка будет полезна при очередном собеседовании, так как это довольно частый вопрос.

Ну и тут ещё больше кейсов с иллюстрациями, а тут отличное сравление этих двух классов.

BY Android Live 🤖




Share with your friend now:
tgoop.com/android_live/362

View MORE
Open in Telegram


Telegram News

Date: |

When choosing the right name for your Telegram channel, use the language of your target audience. The name must sum up the essence of your channel in 1-3 words. If you’re planning to expand your Telegram audience, it makes sense to incorporate keywords into your name. As five out of seven counts were serious, Hui sentenced Ng to six years and six months in jail. Telegram desktop app: In the upper left corner, click the Menu icon (the one with three lines). Select “New Channel” from the drop-down menu. On Tuesday, some local media outlets included Sing Tao Daily cited sources as saying the Hong Kong government was considering restricting access to Telegram. Privacy Commissioner for Personal Data Ada Chung told to the Legislative Council on Monday that government officials, police and lawmakers remain the targets of “doxxing” despite a privacy law amendment last year that criminalised the malicious disclosure of personal information. To delete a channel with over 1,000 subscribers, you need to contact user support
from us


Telegram Android Live 🤖
FROM American