IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
HashMapを使う上での注意点について説明します。 Map型変数を使う HashMapオブジェクトを格納するには、HashMap型変数ではなくMap型変数を使います。 // HashMapオブジェクトの生成 Map<String, String> map = new HashMap<String, String>(); HashMapはMapの実装の一つに過ぎません。HashMapをMapとして使っているのであればMap型変数に格納した方が自然です。また、パフォーマンス上の問題で他のマップ(TreeMapなど)と差し替えることが容易になるなど、プログラムの汎用性が上がります。HashMap独自の操作が必要である場合(あまり思いつきませんが)を除いてMap型変数を使いましょう。 初期容量と負荷係数 HashMap生成時のパラメータとして、初期容量と負荷係数があります。 初期容量は、Hash
RxJava Nightに向けてRxJavaについて調べ始めたものの、日本語の情報がほとんど無くて辛かったので調べた事をまとめました。 RxJavaやリアクティブプログラミングについては今までまったく知らなかったので、内容には間違いが含まれている可能性があります。予めご容赦頂いた上でご覧ください。 元ネタはほぼ ReactiveX/RxJava/Wiki Grokking RxJava 【翻訳】あなたが求めていたリアクティブプログラミング入門 - ninjinkun's diary です。 RxJavaとは RxJavaとはリアクティブプログラミングを行うためのライブラリであるRx(Reactive Extensions)のJVM版とのこと。 リアクティブプログラミングの概念についてはそれほどよく理解出来ていないので、上記の記事などを参照してください。 StreamAPI+非同期コールバッ
複数の責務をFragmentやActivityに押し込めてるのが原因です。 公式サイトに書いてあるようなこともありますが、今一度まとめてみました。 -- Activityの長さが10000行を超えました!!とても保守できません!!隊長!! 初期のAndroid開発は手探りでした。Activity、Intent等、大きな枠組みでは優れてましたが、その上の層に関してはノータッチでした。 皆Activityが単位として大きすぎるのは理解してましたが、多くの人はActivityにコードを詰め込む道を選びました。フレームワークを 使う ことに慣れすぎて、 作る ことには不慣れだったのです。 とはいえ、そんなコードはすぐ破綻します。それではまずいということで、GUIフレームワークの知見のある人達は、各々、オレオレフレームワークを内部で抱え込むことになりました。暗黒時代です。 しばらくして、開発が追いつ
社内のRxJava勉強会用の資料です。 軽く、ほんの軽くRxJavaのサブセットを20行ほどで実装してみました。 https://github.com/gfx/RxInTheBox 概要 RxJavaはPromise的なもので、連続した「イベントの発生 / 値の生成」を扱えるようにしたもの Observableは「イベントが発生するかもしれない状態 / 値の生成中」という状態を表すオブジェクト OnSubscribeはObservableの中身で、「イベントの発生 / 値の生成」をObservableに通知するためのオブジェクト SubscriberはObservableから「発生したイベント / 生成された値」を受け取るコールバック RxJavaの捉え方 まずRxJavaですが、いくつかの捉え方があります。 リスト処理の抽象化・ストリーム化 Optional的な何か Promise的な何
Java SE 8では、言語仕様に大きな変更が加わり、新たに「ラムダ式」が導入された。なぜこの機能が必要なのか、コードの書き方はどう変わるのか? 米国オラクルでJava SEのコア・ライブラリ開発チームをリードするスチュアート・マークス氏が解説する。 >> 後編の記事はこちら 2014年3月にリリースされたJava SEの最新版「Java SE 8」における最大の変更点は、言語仕様に大きな変更が加わり、関数型のプログラミング記法である「ラムダ式(Lambda Expressions)」が導入されたことだ。Java SE 8以降のJavaプログラミングでは、このラムダ式をうまく使いこなしていくことが求められる。 「そのためには、なぜこの機能が追加されたのか、どう使えば効果的なのかを知ることが近道となります」と語るのは、米国オラクルでJava SEの仕様策定をリードするスチュアート・マークス氏
ジェネリクスでは、「型」を変数にした「型変数」というものを取り扱う。型変数で何が嬉しいかというと、メジャーな例ではコレクションAPIが挙げられる。java.util.Listとかjava.util.Mapとかのデータを格納するタイプのユーティリティクラスのことだ。 2004年にJavaのバージョンが5.0となるまでは、Javaにはジェネリクスの機能はなかった。なので、Listにデータを格納し、取得する場合は List list = new ArrayList(); list.add("hello!"); String str = (String) list.get(0); といったソースコードになる。 add()の引数はObject型で宣言されており、どんな参照型でもadd()することができた。 get()の戻り値もObject型で宣言されておりキャストが必要だった。このキャストはプログラ
Generics(総称型)のプログラミングはJava言語(バージョン5以降)で最も習得が困難な文法*1の一つです。私自身、時々どうやって文法エラーを修正すべきか悩むこともあるくらいで、実際かなり複雑です。Genericsの導入は賛否両論なので、実際Javaに導入したのは間違いだったという議論もある一方で、静的な型安全性を重視するプログラマーもいます。 好き嫌いはともかくとして、Javaプログラマーとしては、一度きちんとGenericsの正しい使い方(=使い勝手のよい総称型やメソッドの正しい定義方法)について勉強しておいてもよいと思います。 Java Generics and Collections: Speed Up the Java Development Process 作者: Maurice Naftalin,Philip Wadler出版社/メーカー: O'Reilly Media
What's Google Guava? Googleが開発しているOSSのjava core libraryで、Googleの多くのJavaベースのプロジェクトで使用されており、 Java 1.5 以上で使用できる。 昔、Google Collectionとして開発されていた。 Apache Commons の Lang、Collectionsなどに替わる機能を提供していて、パッケージ名を見れば大体の機能について想像がつくと思います。 com.google.common.annotations com.google.common.base com.google.common.cache com.google.common.collect com.google.common.escape com.google.common.eventbus com.google.common.hash c
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く