Java Collections Frameworkに着想を得た、型付きのコレクションやマップを提供するPHPライブラリです。
apple/swift-collections
Swift開発者向けに、両端キュー、ヒープ、順序付きセット/辞書、ビットセットなど、よく使われるデータ構造を提供するSwiftパッケージ。
- スター
- 4,549
- フォーク
- 436
- 未解決の Issue
- 70
- 最終コミット
- 24 時間前
これは何?
Swift Collectionsは、標準ライブラリのArray、Set、Dictionary型を拡張するデータ構造の実装をまとめたSwiftパッケージです。テーマ別のモジュールで構成されており、リングバッファを基盤とする両端キューのDequeModule、優先度付きキューとして使えるmin-max heapのHeapModule、挿入順を保持するOrderedSetとOrderedDictionaryを提供するOrderedCollectionsなどがあります。
ほかにも、ビットベースのコンパクトなストレージを実現するBitCollections(BitSetとBitArray)、変更されていない部分をコピー間で共有するCHAMP trieベースの永続的なTreeSetとTreeDictionaryを提供するHashTreeCollections、所有権を考慮したUniqueArrayとRigidArrayを提供するBasicContainersがあります。Collectionsモジュールをimportすると、主要な安定版の型をまとめて利用できます。
このパッケージはセマンティックバージョニングに従っており、最近のSwiftツールチェーンが必要です。必要な最小バージョンはリリースごとに記載されています。SortedCollections、Robin Hoodハッシュコンテナ、コンテナプロトコルのプレビューなどの実験的機能は、明示的に有効化するパッケージtraitの背後にあり、安定版APIではありません。
主な機能
- 01一般的なコレクション用途に使えるDeque、heap、OrderedSet、OrderedDictionary型。
- 02ビットベースのコンパクトなストレージを実現するBitSetとBitArray。
- 03変更されていない部分をコピー間で共有する永続的なTreeSetとTreeDictionary。
- 04Collectionsを1つimportするだけで、主要な安定版の型を利用可能。
- 05セマンティックバージョニングを採用し、リリースごとに必要な最小Swiftツールチェーンを明記。
ユースケース
- 独自のコードを書かずに、Swiftの辞書やセットで挿入順を保持する。
- Swift製のサーバーやアプリで、優先度付きキューや両端キューを使う。
- ビットベースの型を使って、大量の整数や真偽値をよりコンパクトに保存する。
- 永続木を使って、辞書の不変スナップショットをスレッド間や状態間で共有する。
クイックスタート
- 1
READMEの使用方法のセクションに記載されているとおり、Package.swiftにswift-collectionsをパッケージ依存関係として追加します
使う前に知っておきたいこと
- パッケージtraitで有効化される実験的機能は不安定で、予告なく変更または削除される場合があります。
- Swift toolchainが必要なため、Swiftプロジェクトでのみ利用できます。
トピック
よくある質問
- swift-collections とは?
- Swift開発者向けに、両端キュー、ヒープ、順序付きセット/辞書、ビットセットなど、よく使われるデータ構造を提供するSwiftパッケージ。 Swift Collectionsは、標準ライブラリのArray、Set、Dictionary型を拡張するデータ構造の実装をまとめたSwiftパッケージです。テーマ別のモジュールで構成されており、リングバッファを基盤とする両端キューのDequeModule、優先度付きキューとして使えるmin-max heapのHeapModule、挿入順を保持するOrderedSetとOrderedDictionaryを提供するOrderedCollectionsなどがあります。
- swift-collections は無料で使えますか?ライセンスは?
- swift-collections は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- swift-collections は今もメンテナンスされていますか?
- 活発にメンテナンス中。swift-collections の最終コミットは 2026年11月6日 です。
- swift-collections は何に使えますか?
- 独自のコードを書かずに、Swiftの辞書やセットで挿入順を保持する。 Swift製のサーバーやアプリで、優先度付きキューや両端キューを使う。 ビットベースの型を使って、大量の整数や真偽値をよりコンパクトに保存する。 永続木を使って、辞書の不変スナップショットをスレッド間や状態間で共有する。
- swift-collections のインストール方法は?
- READMEの使用方法のセクションに記載されているとおり、Package.swiftにswift-collectionsをパッケージ依存関係として追加します
- swift-collections はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/apple/swift-collections
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
整数集合の高速な集合演算を、他の形式より少ないメモリで実現する圧縮ビットマップ(Roaring bitmap)のJavaライブラリです。
トピック別にFlutterのライブラリ、プラグイン、チュートリアル、記事、サンプルアプリをまとめた厳選リスト。
本、DVD、切手、ゲームなど、あらゆる種類の実物コレクションを管理できるセルフホスト型コレクション管理ツール。
GoogleのJava向け基本ライブラリ。multimapやmultisetなどのコレクション、グラフ構造、並行処理・I/O・ハッシュ・文字列向けのユーティリティを提供します。
暗号化、エンコード、圧縮、ハッシュ計算、データ分析をブラウザー上で行えるWebアプリ。Cyber Swiss Army Knifeとも呼ばれます。