Google Guava
作者 Kevin Bourrillion and Jared Levy (Google Collections Library) [1]
開発元 Google
最新版
33.4.0 / 2024年12月17日 (17か月前) (2024-12-17)
リポジトリ ウィキデータを編集
プログラミング
言語
Java
対応OS クロスプラットフォーム
サポート状況 Active
種別 ユーティリティ・コレクションライブラリ
ライセンス Apache License 2.0
公式サイト github.com/google/guava
テンプレートを表示

Google Guavaとは、オープンソースJavaライブラリで、Javaのプログラミングで共通して使われるユーティリティライブラリをまとめたもの。主にGoogleのエンジニアによって開発されている。

概要

編集

Google Guavaは、主に三つのコンポーネントにわけられている。

  • 共通メソッドや振る舞いを簡潔に実装するための基本ライブラリ。hashCodeなどの実装や前提条件チェックなどのコード量を減らすことができる。
  • 標準ライブラリのJava Collections Frameworkへの拡張。以前はGoogle Collections Libraryと呼ばれていた。
  • その他のユーティリティライブラリで、関数型プログラミング、キャッシュ、区間オブジェクト、ハッシュなどをサポートする。

JDK 1.5でJavaに総称型が導入されたが、標準のコレクション・フレームワークは十分な機能を有しているとはいえず、また代表的なユーティリティ・ライブラリであるApache Commons Collectionsは、後方互換性を維持するために総称型への対応を行わなかった。こうした状況に対処するため、GoogleのエンジニアであるKevin BourrillionとJared Levyが社内の「20%ルール」を使い、総称型をサポートしつつ高機能なコレクションクラスを提供するGoogle Collections Libraryを開発した[1]のが、Guavaの先駆けである。そのため、Guavaのコレクションフレームワークはライブラリの中でも特に強力で、マルチセット、マルチマップ、双方向マップ、不変コレクション型などの多種多様なクラスが実装されている。また、デザインやコードの監修には、ベストセラーEffective Javaの著者ジョシュア・ブロックや、Javaの並列プログラミング用標準ライブラリを策定したダグ・リーen:Doug Lea)などが関わっていた。[1]

Sonatype社の調査によれば、2012年4月時点で、Apache Commonsのプロジェクト群などに次いで、Guavaは12番目に人気なJavaライブラリとなっている。[2]

関連項目

編集

脚注

編集
  1. ^ a b c Wielenga, Geertjan (2007年10月23日). “What is the Google Collections Library?”. Javalobby. 2013年2月3日閲覧。
  2. ^ O'Brien, Tim (2012年5月14日). “Google Guava Shows Strong Growth in April”. Sonatype. 2013年2月3日閲覧。

外部リンク

編集


📚 Artikel Terkait di Wikipedia

セット (抽象データ型)

dered_multisetが追加された。 Java - インタフェースjava.util.Setを実装するjava.util.TreeSetやjava.util.HashSetなど .NET Framework - System.Collections.Generic.ISet (.NET 4以降)

連想配列

.NET Framework (C#,VB.NET,F#) - System.Collections.Hashtable, System.Collections.Specialized.ListDictionary, System.Collections.Specialized.HybridDictionary

基本クラスライブラリ

Javaクラスライブラリと比肩しうる。 CLIの最初の実装である.NET Frameworkは、BCLの起源である。BCLにおけるほとんどの機能はMonoや.NET Coreにも移植されている。BCLはときどきFramework Class Library (FCL)

配列

イブラリで提供されるもの(C++のstd::vector、Javaのjava.util.ArrayList、.NETのSystem.Collections.Generic.Listなど)と、言語に組み込まれているもの(Perl、D、JavaScript、Pythonのlistなど)がある。またPe

.NET

ムワークであり、Windows、Linux、macOSなど複数のオペレーティングシステム上で動作する。.NET 5以降では、従来の.NET FrameworkおよびXamarin/Monoで提供されてきた機能が統合され、これらの後継として位置づけられている。

両端キュー

間部分も直接読み書きできる(ただし、キュー両端への挿入・削除がO(1)なのに対し、中間への挿入・削除はO(n)となる)。 Java 6 Collections Framework に Deque インタフェースがあり、両端での追加・取出し機能を提供している。これを実装したクラスとして ArrayDeque

ボックス化

に変換すること。逆に、ボックス化されたオブジェクトを値型に戻すことをボックス化解除(unboxing)と呼ぶ。 Javaや.NET Frameworkなどの環境においては、値型(Javaではプリミティブ型がこれに相当する)と参照型という根本的に異なる二種類の型が存在する。参照型のインスタンスはヒー

リフレクション (情報工学)

ョンのことを指すが、静的(コンパイル時)リフレクションをサポートするプログラミング言語もある。リフレクションはSmalltalk、Java、.NET Frameworkにおける仮想マシンやインタプリタ上で実行されることを想定した言語でサポートされることが多く、C言語のような機械語として出力されるこ