# Collections

Collections are programming constructs and frameworks for grouping, storing, retrieving, and manipulating multiple elements as a single unit.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Collection Literals in Kotlin

DevFeed: [Collection Literals in Kotlin](<https://devfeed.tech/articles/collection-literals-in-kotlin-39251.md>)

Original publisher: [Read original article](<https://kt.academy/article/collection-literals>)

Published: 2026-05-04T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Collections](<https://devfeed.tech/topics/collections.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [IntelliJ IDEA](<https://devfeed.tech/topics/intellij-idea.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>)

Tags: [collection](<https://devfeed.tech/tags/collection.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [feature](<https://devfeed.tech/tags/feature.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [intellij-idea](<https://devfeed.tech/tags/intellij-idea.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [new-feature](<https://devfeed.tech/tags/new-feature.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This tutorial explains Kotlin collection literals, an experimental feature that uses square brackets to create lists, sets, and custom collections. It covers usage examples, compiler requirements, current IntelliJ IDEA limitations, and the expected future support.

### Source excerpt

The new feature in Kotlin that allows for concise and expressive collection creation.

## Kotlin var with Read-Only Collections vs. val with Mutable Collections

DevFeed: [Kotlin var with Read-Only Collections vs. val with Mutable Collections](<https://devfeed.tech/articles/mutable-objects-or-properties-39391.md>)

Original publisher: [Read original article](<https://kt.academy/article/var_readonly_vs_val_mutable>)

Published: 2024-06-03T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Collections](<https://devfeed.tech/topics/collections.md>)

Tags: [atomic](<https://devfeed.tech/tags/atomic.md>), [bugs](<https://devfeed.tech/tags/bugs.md>), [collections](<https://devfeed.tech/tags/collections.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [memory](<https://devfeed.tech/tags/memory.md>), [stateflow](<https://devfeed.tech/tags/stateflow.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This article compares Kotlin var properties holding read-only collections with val properties holding mutable collections. It explains trade-offs involving copying costs, observability, defensive copies, and thread safety, concluding that the preferable choice depends on how the state is accessed and modified.

### Source excerpt

Time to answer the question: var/readonly vs val/mutable. Which one should you use?

## Effective Kotlin Item 60: Use appropriate collection types

DevFeed: [Effective Kotlin Item 60: Use appropriate collection types](<https://devfeed.tech/articles/effective-kotlin-item-60-use-appropriate-collection-types-39273.md>)

Original publisher: [Read original article](<https://kt.academy/article/ek-collection-types>)

Published: 2023-12-04T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Collections](<https://devfeed.tech/topics/collections.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>), [optimize](<https://devfeed.tech/topics/optimize.md>)

Tags: [collections](<https://devfeed.tech/tags/collections.md>), [data-structure](<https://devfeed.tech/tags/data-structure.md>), [efficiency](<https://devfeed.tech/tags/efficiency.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [thread](<https://devfeed.tech/tags/thread.md>), [time-complexity](<https://devfeed.tech/tags/time-complexity.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This Kotlin article explains the contracts and implementation considerations of lists, sets, and maps. It focuses on how underlying data structures, mutability, thread safety, and array-based list growth affect collection performance and operation time complexity.

### Source excerpt

Using non-standard collection types to improve performance in Kotlin.

## Effective Kotlin Item 56: Consider using groupingBy instead of groupBy

DevFeed: [Effective Kotlin Item 56: Consider using groupingBy instead of groupBy](<https://devfeed.tech/articles/effective-kotlin-item-56-consider-using-groupingby-instead-of-groupby-39280.md>)

Original publisher: [Read original article](<https://kt.academy/article/ek-grouping>)

Published: 2021-10-11T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [groupby](<https://devfeed.tech/topics/groupby.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [performance-optimization](<https://devfeed.tech/topics/performance-optimization.md>), [Collections](<https://devfeed.tech/topics/collections.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [collections](<https://devfeed.tech/tags/collections.md>), [groupby](<https://devfeed.tech/tags/groupby.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This tutorial explains how Kotlin's groupBy and groupingBy functions organize elements from an iterable by key. It describes groupBy as the simpler option that creates collections for each key, while groupingBy can reduce work and memory use in performance-critical code by processing groups through operations such as counting and aggregation.

### Source excerpt

What Grouping is, and how groupingBy instead of groupBy can be a performance optimization.

## Effective Kotlin Item 54: Prefer Sequences for big collections with more than one processing step

DevFeed: [Effective Kotlin Item 54: Prefer Sequences for big collections with more than one processing step](<https://devfeed.tech/articles/effective-kotlin-item-54-prefer-sequences-for-big-collections-with-more-than-one-processing-step-39290.md>)

Original publisher: [Read original article](<https://kt.academy/article/ek-sequence>)

Published: 2021-09-20T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Sequences](<https://devfeed.tech/topics/sequences.md>), [Collections](<https://devfeed.tech/topics/collections.md>), [.NET](<https://devfeed.tech/topics/net.md>)

Tags: [collections](<https://devfeed.tech/tags/collections.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [lazy](<https://devfeed.tech/tags/lazy.md>), [order-of-operations](<https://devfeed.tech/tags/order-of-operations.md>), [sequences](<https://devfeed.tech/tags/sequences.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This article explains the difference between Kotlin collection and sequence processing. Sequences are lazy: intermediate operations build a processing chain, and calculations occur during terminal operations. The article discusses their element-by-element ordering, reduced processing work, support for infinite sequences, and avoidance of intermediate collections.

### Source excerpt

What the difference between list and sequence processing is, and when each should be preferred.

## Methods of Proof -- Diagonalization

DevFeed: [Methods of Proof -- Diagonalization](<https://devfeed.tech/articles/methods-of-proof-diagonalization-40384.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2015/06/08/methods-of-proof-diagonalization/>)

Published: 2015-06-08T09:00:00Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Mathematics](<https://devfeed.tech/topics/mathematics.md>), [Math and Logic](<https://devfeed.tech/topics/math-and-logic.md>), [Collections](<https://devfeed.tech/topics/collections.md>)

Tags: [bijections](<https://devfeed.tech/tags/bijections.md>), [cardinality](<https://devfeed.tech/tags/cardinality.md>), [diagonalization](<https://devfeed.tech/tags/diagonalization.md>), [halting-problem](<https://devfeed.tech/tags/halting-problem.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [methods-of-proof](<https://devfeed.tech/tags/methods-of-proof.md>), [turing-machines](<https://devfeed.tech/tags/turing-machines.md>), [uncountability](<https://devfeed.tech/tags/uncountability.md>)

### AI overview

This tutorial introduces diagonalization as an advanced method of mathematical proof. It explains the table-and-diagonal construction and presents the theorem that no bijection exists between the natural numbers and the real numbers.

### Source excerpt

A while back we featured a post about why learning mathematics can be hard for programmers, and I claimed a major issue was not understanding the basic methods of proof (the lingua franca between intuition and rigorous mathematics). I boiled these down to the "basic four," direct implication, contrapositive, contradiction, and induction. But in mathematics there is an ever growing supply of proof methods. There are books written about the "probabilistic method," and I recently went to a lecture where the "linear algebra method" was displayed.

## Computing Homology

DevFeed: [Computing Homology](<https://devfeed.tech/articles/computing-homology-40311.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2013/04/10/computing-homology/>)

Published: 2013-04-10T16:38:25Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Computing](<https://devfeed.tech/topics/computing.md>), [Code](<https://devfeed.tech/topics/code.md>), [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [Collections](<https://devfeed.tech/topics/collections.md>), [.NET 11 Preview 7](<https://devfeed.tech/topics/net-11-preview-7.md>)

Tags: [algebraic-topology](<https://devfeed.tech/tags/algebraic-topology.md>), [algorithm](<https://devfeed.tech/tags/algorithm.md>), [code](<https://devfeed.tech/tags/code.md>), [collections](<https://devfeed.tech/tags/collections.md>), [computing](<https://devfeed.tech/tags/computing.md>), [homology](<https://devfeed.tech/tags/homology.md>), [linear-maps](<https://devfeed.tech/tags/linear-maps.md>), [matrices](<https://devfeed.tech/tags/matrices.md>), [matrix](<https://devfeed.tech/tags/matrix.md>), [ordering](<https://devfeed.tech/tags/ordering.md>), [row-reduction](<https://devfeed.tech/tags/row-reduction.md>), [structure](<https://devfeed.tech/tags/structure.md>)

### AI overview

This tutorial explains an algorithmic approach to computing homology for a simplicial complex. It represents chain groups and boundary homomorphisms as matrices, uses row reduction, and works through an extended example for computing H₁.

### Source excerpt

Update: the mistakes made in the code posted here are fixed and explained in a subsequent post (one minor code bug was fixed here, and a less minor conceptual bug is fixed in the linked post). In our last post in this series on topology, we defined the homology group. Specifically, we built up a topological space as a simplicial complex (a mess of triangles glued together), we defined an algebraic way to represent collections of simplices called chains as vectors in a vector space, we defined the boundary homomorphism $ \partial_k$ as a linear map on chains, and finally defined the homology groups as the quotient vector spaces

## Quick intro to Google Guava

DevFeed: [Quick intro to Google Guava](<https://devfeed.tech/articles/quick-intro-to-google-guava-37835.md>)

Original publisher: [Read original article](<https://carlosbecker.com/posts/rocking-out-with-google-guava/>)

Author: Carlos Alexandro Becker

Published: 2012-08-08T00:00:00Z

Content type: tutorial

Language: en

Sources: [Carlos Becker](<https://devfeed.tech/sources/carlos-becker.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Collections](<https://devfeed.tech/topics/collections.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [IO](<https://devfeed.tech/topics/io.md>)

Tags: [caching](<https://devfeed.tech/tags/caching.md>), [collections](<https://devfeed.tech/tags/collections.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [google](<https://devfeed.tech/tags/google.md>), [java](<https://devfeed.tech/tags/java.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [processing](<https://devfeed.tech/tags/processing.md>)

### AI overview

An introduction to Google Guava, covering its Java libraries for collections, caching, concurrency, string processing, I/O, null handling, immutable collections, EventBus, and related utilities.

### Source excerpt

According to the project site on GitHub, The Guava project contains several of Google's core libraries that we rely on in our Java-based projects: collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and so forth.