この記事では、 Collections Frameworkの3 つの重要なコレクション クラスArrayList、Vector、およびHashMap について学び、独自のコードでそれらの使用を開始します。 コレクション クラスとコレクション クラス を使用すると、要素のグループを単純なオブジェクトとして保存し、これらのクラスで使用できるさまざまなメソッドを使用して要素を操作できます。クラスと はパッケージから入手できます。もう 1 つのクラスはコレクションであり、パッケージから入手できます。このクラスでは、キーと値のマッピングのコレクションを保存できます。これにより、キーがわかっている場合にコレクションから目的の値を取得できるようになります。これらのコレクション クラスを使用した例を 1 つずつ見てみましょう。例 1. この例では、クラス ( ArrayList コレクション)を使用して簡単なプログラムを作成します。 リスト 1. 例 1 の実行コード
ArrayList
Vector
ArrayList
Vector
java.util
java.util
HashMap
// подключаем класс
import java.util.ArrayList;
public class ArrayListExample {
static String[] favouriteCharacters = {"Harry", "Ron", "Hermione", "Snape", "Dumbledore", "Moody", "Riddle", "Fred"};
int i;
public ArrayList favouritelist = new ArrayList();
// метод добавляет элементы ‘favouriteCharacters’ в ‘favouritelist’
private void includeCharacters(String[]favouriteCharacters)
{
for (i = 0; i < favouriteCharacters.length; i++) {
// добавление элементов по одному из массива ‘favouriteCharacters’
favouritelist.add(favouriteCharacters[i]);
printCharacters(i);
}
// добавление элементов, посредством указания позиций
favouritelist.add(1, "george");
favouritelist.add(4, "Peter");
}
// метод выводит элемент ‘favouritelist’ по указанной позиции
private void printCharacters(int i) {
System.out.println("Character " + (i + 1) + ":" + favouritelist.get(i));
}
// метод выводит все элементы ‘favouritelist’
private void printCharacters() {
System.out.println("\n");
for(int i=0;i<favouritelist.size();i++){
System.out.println("Character" + (i + 1) + ":" + favouritelist.get(i));
} }
// метод возвращает размер коллекции ‘favouritelist’
private int sizeofCharactersList() {
System.out.println("\n");
System.out.println("Total No of Characters in Array:" + favouriteCharacters.length);
System.out.println("Total No of Characters in List:" + favouritelist.size());
return favouritelist.size();
}
// метод выводит позицию element ‘favouritelist’ по указанному имени
public void getCharacterPostion(String characterName) {
System.out.println("\n");
System.out.println("The position of the character\t" + characterName + "\tis\t" + favouritelist.indexOf(characterName));
}
// метод удаляет элемент ‘favouritelist’ по указанному имени
public void removeCharacter(String characterName) {
if(favouritelist.size()>favouriteCharacters.length){
favouritelist.remove(characterName);
}
else{
System.out.println("\n");
System.out.println("The element\t"+favouritelist.get(favouritelist.indexOf(characterName))+"\tcannot be removed");
}
}
// метод удаляет элемент ‘favouritelist’ по указанной позиции
public void removeCharacter(int i) {
if(favouritelist.size()>favouriteCharacters.length){
favouritelist.remove(i);
}
else{
System.out.println("The element\t"+favouritelist.get(i)+"\tcannot be removed");
}
}
public static void main(String args[]) {
ArrayListExample example = new ArrayListExample();
example.includeCharacters(favouriteCharacters);
example.printCharacters();
int size = example.sizeofCharactersList();
example.getCharacterPostion("Ron");
example.removeCharacter("Snape");
example.removeCharacter(2);
example.sizeofCharactersList();
example.removeCharacter("Harry");
example.removeCharacter(4);
}
}
このプログラムを実行すると、次の出力が生成されます。
Character 1:Harry
Character 2:Ron
Character 3:Hermione
Character 4:Snape
Character 5:Dumbledore
Character 6:Moody
Character 7:Riddle
Character 8:Fred
Character1:Harry
Character2:george
Character3:Ron
Character4:Hermione
Character5:Peter
Character6:Snape
Character7:Dumbledore
Character8:Moody
Character9:Riddle
Character10:Fred
Total No of Characters in Array:8
Total No of Characters in List:10
The position of the character Ron is 2
Total No of Characters in Array:8
Total No of Characters in List:8
The element Harry cannot be removed
The element Dumbledore cannot be removed
提供されているサンプル プログラムを順を追って見てみましょう。この例では、プログラムの最初の行で、クラス - collection をインポートしますArrayList
。favouriteCharacters
次に、人の名前とfavouritelist
コレクションのインスタンスを含む文字列の配列を順番に初期化しますArrayList
。この方法はincludeCharacters(args)
2 つの部分に分けることができます。メソッドの最初の部分では、ループを使用して要素が配列からコレクションに追加されます。この場合、要素の追加は、ArrayList
配列内での配置と同じ順序で行われます。これは、コレクションに追加される要素の位置を定義していないために発生します。ただし、メソッドの 2 番目の部分では、インデックスを使用して要素が追加されます。この場合、要素はコレクションの指定された正確な位置に追加されます。新しい要素がコレクションの途中に追加されるとArrayList
、新しい要素の指定された挿入位置を超えてコレクション内にすでに存在する要素は、それ以降の位置に移動されるため、コレクションのサイズが増加します。 最初に出力を見ると、次のことがわかります。
Total No of Characters in List: 10
Total No of Characters in Array: 8
これは、 に追加される 8 つの要素を持つ配列に加えてArrayList
、さらに 2 つの要素を明示的に追加するため、コレクションのサイズが 10 に増加します。 このメソッドはgetCharacterPosition(args)
要素の値 (人の名前) を取得し、位置を表示します。コレクション内のこの要素のArrayList
。にそのような要素がない場合はArrayList
、値 -1 が表示されます。このメソッドは、removeCharacter(args)
その要素のインデックスまたは要素自体を引数として受け取り、指定された要素値 (人の名前) をコレクションから削除します。上記のコードでは、コレクションから 2 つの要素を削除したため、コレクションのサイズが 10 ではなく 8 になっていることがわかります。 配列とコレクションのサイズが同じ場合、メソッドは次の行を返します。
The element Harry cannot be removed
The element Dumbledore cannot be removed
メソッドの実行は、removeCharacter(args)
コレクションのサイズが配列のサイズより大きくなければならないという事実によってのみ条件付けされます。例 2. この例では、クラス (コレクション) を使用して簡単なプログラムを作成します。Vector
リスト 2. 例 2 の実行コード
// подключаем класс
import java.util.Vector;
public class VectorExample {
Vector vector=new Vector();
public void addCharacterandPrint(){
vector.add("Weasley");
vector.add("Potter");
for(int i=0;i<vector.size();i++){
System.out.println("The characters are\t"+vector.get(i));
}
}
public static void main(String args[]){
VectorExample example=new VectorExample();
example.addCharacterandPrint();
}
}
このプログラムを実行すると、次の出力が生成されます。
The characters are Weasley
The characters are Potter
上記のコードはほんの小さなサンプルであり、コレクションArrayList
と の間に大きな違いがないことを証明するために提供されていますVector
。コレクションは、Vector
同じメソッドを使用して、 collection と同じ方法で操作できますArrayList
。例 3. この例では、コレクション クラスを使用して簡単なプログラムを作成します。HashMap
リスト 3. 例 3 の実行コード
// подключаем класс
import java.util.HashMap;
public class HashMapExample {
HashMap hashMap=new HashMap();
String Books[]={"Famous Five","Goosebumps","Robinson Crusueo","Nancy Drew","The Cell","The Davinci Code","Harry Potter"};
public void mapAuthors(){
hashMap.put("Famous Five","Enid Blyton");
hashMap.put("Goosebumps","R.L.Stine");
hashMap.put("Nancy Drew","Carolyn Keene");
hashMap.put("The Cell","Christopher Pike");
hashMap.put("The Davinci Code","Dan Brown");
hashMap.put("Harry Potter","J.K. Rowling");
}
public void getBookList(){
for(int i=0;i<Books.length;i++){
if(hashMap.containsKey(Books[i])){
System.out.println("Author"+(i+1)+":\t"+hashMap.get(Books[i])+"\t"+Books[i]);
}
else{
System.out.println("\nThe Imformation about the author of the book\t"+Books[i]+"\tis not available\n");
}
}
}
public static void main(String args[]){
HashMapExample hashMapExample=new HashMapExample();
hashMapExample.mapAuthors();
hashMapExample.getBookList();
}
}
このプログラムを実行すると、次の出力が生成されます。
Author1: Enid Blyton Famous Five
Author2: R.L.Stine Goosebumps
The Information about the author of the book Robinson Crusueo is not available
Author4: Carolyn Keene Nancy Drew
Author5: Christopher Pike The Cell
Author6: Dan Brown The Davinci Code
Author7: J.K. Rowling Harry Potter
上記のコードを段階的に見てみましょう。このサンプル プログラムには、有名な本の名前を要素とする文字列の配列があります。このメソッドは、mapAuthors()
本のタイトルとその著者の表示を作成します。ここでのキーは本のタイトルであり、値はそれらの本の著者です。このメソッドが呼び出されるとgetBookList()
、配列を反復処理してBooks
本のタイトルを 1 つずつ取得します。次に、メソッドは、書籍に独自の著者が存在するかどうかを確認します。ご覧のとおり、メソッドで本の著者が見つからない場合は、メッセージが表示されますnot available
。それ以外の場合は、著者とその書籍が 1 つずつ表示されます。 結論:ArrayList
この記事では、 collections 、 というクラスについて少し勉強しVector
、HashMap
独自のコードでそれらを使用してみました。元の記事: Java Collections Framework が提供する ArrayList、Vector、HashMap クラスの使用方法
GO TO FULL VERSION