コレクション・フレームワークの概要 コレクションとは複数の要素の集まりを言います。コレクション・フレームワークとはその要素の集まりを操作、管理するための方法を定義したアーキテクチャです。Javaでは、コレクション・フレームワークはインタフェースをベースに設計されています。コレクション・フレームワークのために定義されているインタフェースは以下のようになります。 Collectionインタフェース Listインタフェース、Setインタフェースのスーパーインタフェースです。コレクション・フレームワークにおける共通機能が定義されています。 Listインタフェース 格納される要素において、順番を持つインタフェースです。インデックス番号により、要素を操作するメソッドが定義されています。 Setインタフェース 格納される要素において、重複を許可しないインタフェースです。重複要素を持たせたくない場合に使用
オブジェクトを並び替えるためにTreeMapを用いたソートは良く使うんだけど 単純な文字列のみのソートはあまり知らなかったので調べてみた。 Collections.sortを使う List<String> array = new ArrayList<String>(); array.add("a"); array.add("x"); array.add("1"); array.add("b"); array.add("3"); Collections.sort(array); for (String string : array) { System.out.println(string); } TreeSetを使う TreeSet<String> array = new TreeSet<String>(); array.add("x"); array.add("a"); array.add
オブジェクトの比較方法もいろいろあります。よく使う標準の比較方法は、クラスの中にcompareToで指定すればよかったですね。第5章の続編として、この章では他の比較方法を使いたい場合を解説します。 さあ、今日はいやーな予防接種の日です。普段背の順で並んでいる梅組の子供たちも、今日は出席番号順に並ばなければなりません。第5章で、クラスStudentに、背をもとにオブジェクトを比較するメソッドcompareToを作りましたが、出席番号をもとに比較するには、どうすればいいのでしょう? 実はクラスStudentの中ではなく、Comparator(java.util.Comparator)を実装する別のクラスをわざわざ作って、その中のメソッドcompareで比較方法を定義してやります。次のようになります。 import java.util.Comparator; public class Stude
Javaで二次元配列を任意の順番にソートしたいです。どなたかお力添えいただけないでしょうか? n列22要素の文字列型二次元配列を、そのなかの一要素をキーとして、m個の文字列の中身にあわせてソートがしたいのです。 Javaで二次元配列を任意の順番にソートしたいです。どなたかお力添えいただけないでしょうか? n列22要素の文字列型二次元配列を、そのなかの一要素をキーとして、m個の文字列の中身にあわせてソートがしたいのです。 String[n][22] aa; String[m] bb; //という二つの配列があるという前提で、ソートした二次元配列の結果を得ることが目標です。 ----- String[][] cc = new String[n][22]; int k = 0; for(int i = 0;i < m;i++){ for(int j = 0;j < n;j++){ if(aa[j
2次元配列も1次元配列と同様に配列の宣言、宣言した配列オブジェクトに対する生成という手順をとります。2次元配列は上位配列(1次元配列)と下位配列(1次元配列の中の配列)を同時に生成することもできますし、別々に生成することもできます。上位配列と下位配列を別々に生成する場合は各回配列のサイズが同じでない場合などに使用します。 【例1】上位配列と下位配列を同時に生成する場合。 int[][] int2Array = new int[10][5]; //int型の2次元配列int2Arrayを宣言・生成。 //上位配列のサイズは10、下位配列のサイズは5です。 String[][] string2Array = { {"Sunday", "Monday"}, {"Monday", "Tuesday"} }; //初期化子を指定して2次元配列を宣言・生成することもできます。 【例2】上位配列と下位配
宣言方法 [/2008-07-03] 使用方法 [2008-08-09] 値で埋める [2006-11-18] 比較する [/2017-09-25] コピーする [/2013-01-26] ダンプする [2007-12-07] バイト配列のダンプ [/2021-09-19] オブジェクトの継承 [2008-09-13] 共変関係 [2008-05-21] 配列の宣言 配列の宣言の仕方は2通りある。 int a[]; int[] a; //Javaでは基本的にこちらが使われる ローカル変数以外の場合、宣言だけだと、配列変数にはnullがデフォルトとして入る。(上記の例だと、a=null) ちなみに、「int a[10]」といった書き方は、コンパイルエラーになってしまう。 一行で複数の配列変数を宣言するには、以下のように書く。[2008-04-22] (しかし現実的には、一行には1つの変数だけ
たとえば、 public class Comp { public static void main(String[] args) { int[] a = new int[] { 1, 3, 8, }; int[] b = new int[] { 1, 3, 8, }; System.out.println(a == b); System.out.println(a.equals(b)); System.out.println(java.util.Arrays.equals(a, b)); } }なら、結果は false false trueこうすると public class Comp { public static void main(String[] args) { Object[] a = new Object[] { new int[] {1,2}, new int[] {3,4}
JDKをインストールしてHelloWorld 前回、JDKがJava基本セットと説明しましたね。 そこで、まずは、そのJava基本セット(JDK) を使い、 手動でHelloWorldを作成し実行します。 ツールに頼らず、手動でコマンドを直接操作して実行感覚をつかんで頂く。 とっても重要です。 いってみましょう。 JDKの種類 以前は、Oracleが主流でしたが有償・無償で右往左往?して、 現在は、いくつかの種類のJDKがリリースされています。 OracleJDK:一番充実しているが有償(個人用途は無償) OpenJDK:無料だがインストール複雑 Eclipse Temurin JDK(ADOPTIUM):無償で商用利用できるし簡単 Eclipse Temurin JDKは、 Oracleとほぼ同等機能があるので、 このテキストで使うこととしました。 JDKのダウンロード 基本的には、以下
StringBuilderを使いまわすために一度中身を空文字列に変えたい、というとき StringBuilder sb = new StringBuilder(); という毎回新しいインスタンスを作成する方法、 sb.delete(0, sb.length() - 1); という同じインスタンスの中で中身を全削除する方法、 sb.setLength(0); という一番ラクそうな方法、 と3つほど方法を考えてみたけど、上から順にコストがかかるのかな。 一番下ので問題ないのかな。中で何が起こることになるんだろう。 結局重要なのはcapacity()の値か。3番目の方法が一番ラクでスマートっぽいな。 clear()とかいう名前のメソッドがあれば直感的で分かりやすいと思うんだけどなー
課のメンバーで簡単なプログラミングコンテスト。 お題は、「dog」「cat」「pig」という文字列配列の各要素をカンマで区切った文字列に変換せよ、です。 回答1 String[] ary = new String[]{"dog", "cat", "pig"}; StringBuilder builder = new StringBuilder(); for(int i=0; i<ary.length; i++) { builder.append(ary[i]); if ( i != ary.length-1 ) { builder.append(","); } } String result = builder.toString(); 回答2 String[] ary = new String[]{"dog", "cat", "pig"}; StringBuilder builder =
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く