配列 | コレクション | |
---|---|---|
要素の数 | 後から変更不可 | 変更可能 |
要素の型 | すべてのデータ型 | 参照型のみ |
要素の途中挿入/削除 | 不可 | 可 |
要素の順序づけ | 不可 | 可 |
インターフェース | 実装 | |||
---|---|---|---|---|
ハッシュ構造 | ツリー構造 | サイズ変更可能な配列 | リンクリスト | |
List | ArrayList Vector |
LinkedList | ||
Set | HashSet | TreeSet | ||
Map | HashMap Hashtable |
TreeMap |
List | Set | Map | |
---|---|---|---|
確認 | boolean contains(Object o) | boolean contains(Object o) | boolean containsKey(Object key) |
取得 | Object get(int index) | - | Object get(Object key) |
追加 | boolean add(Object o) | boolean add(Object o) | Object put(Object key, Object value) |
挿入 | void add(int index, Object o) | boolean add(Object o) | Object put(Object key, Object value) |
変更 | Object set(int index, Object o) | boolean add(Object o) | Object put(Object key, Object value) |
削除 | Object remove(int index) boolean remove(Object o) |
boolean remove(Object o) | Object remove(Object key) |
要素数 | int size() | int size() | int size() |
反復子の取得 | Iterator iterator() | Iterator iterator() | キー: Iterator keySet().iterator() 値: Iterator values().iterator() |
Iterator | Enumeration | |
---|---|---|
確認 | boolean hasNext() | boolean hasMoreElements() |
取得 | Object next() | Object nextElement() |
削除 | void remove() | - |
使用例 |
ArrayList a = ... : for (Iterator i = a.iterator(); i.hasNext();) { System.out.println(i.next()); } |
Vector v = ... : for (Enumeration e = v.elements(); e.hasMoreElements();) { System.out.println(e.nextElement()); } |
- import java.util.*;
- public class ArrayList001 {
- public static void main(String[] args) {
- List al = new ArrayList();
- for (int i = 0; i < args.length; i++) {
- al.add(args[i]);
- }
- System.out.println(al);
- }
- }
□ 実行結果
$ java ArrayList001 a s d f g [a, s, d, f, g]
- import java.util.*;
- public class ArrayList002 {
- public static void main(String[] args) {
- List al = new ArrayList();
- al.add("maruno");
- al.add("yamada");
- al.add("suzuki");
- al.add("sato");
- System.out.println("before operation: " + al);
- switch (args[0].charAt(0)) {
- case 'q':
- if (al.contains(args[1])) {
- System.out.println(args[1] + " is contains ArrayList.");
- } else {
- System.out.println(args[1] + " is not contains ArrayList.");
- }
- break;
- case 'a':
- al.add(args[1]);
- System.out.println(args[1] + " is added to ArrayList.");
- break;
- case 'd':
- al.remove(args[1]);
- System.out.println(args[1] + " is removed from ArrayList.");
- break;
- default:
- System.out.println(args[0] + "th element is " + al.get(Integer.parseInt(args[0])));
- break;
- }
- System.out.println("after operation: " + al);
- }
- }
□ 実行結果
$ java ArrayList002 q suzuki before operation: [maruno, yamada, suzuki, sato] suzuki is contains ArrayList. after operation: [maruno, yamada, suzuki, sato] $ java ArrayList002 q saito before operation: [maruno, yamada, suzuki, sato] saito is not contains ArrayList. after operation: [maruno, yamada, suzuki, sato] $ java ArrayList002 a saito before operation: [maruno, yamada, suzuki, sato] saito is added to ArrayList. after operation: [maruno, yamada, suzuki, sato, saito] $ java ArrayList002 d maruno before operation: [maruno, yamada, suzuki, sato] maruno is removed from ArrayList. after operation: [yamada, suzuki, sato] $ java ArrayList002 2 before operation: [maruno, yamada, suzuki, sato] 2th element is suzuki after operation: [maruno, yamada, suzuki, sato]
- import java.util.*;
- public class ArrayList50 {
- public static void main(String[] args) {
- List al = new ArrayList();
- for (int i = 0; i < 10; i++) {
- al.add(new Integer((int)(Math.random() * 10)));
- }
- System.out.println("before operation: " + al);
- for (int i = 0; i < 10; i++) {
- al.set(i, new Integer(((Integer)(al.get(i))).intValue() + 1));
- }
- System.out.println(" after operation: " + al);
- }
- }
□ 実行結果
$ java ArrayList50 before operation: [2, 2, 8, 5, 0, 7, 5, 2, 6, 4] after operation: [3, 3, 9, 6, 1, 8, 6, 3, 7, 5]
- import java.util.*;
- public class ArrayList002 {
- public static void main(String[] args) {
- List al = new ArrayList();
- for (int i = 0; i < args.length; i++) {
- al.add(new Double(args[i]));
- }
- System.out.println(al);
- }
- }
□ 実行結果
$ >java ArrayList002 5 -3 1 -2 4 [5.0, -3.0, 1.0, -2.0, 4.0]
- import java.util.*;
- public class ArrayList13 {
- public static void main( String[] args ) {
- List al = new ArrayList();
- for ( int i = 0; i < 10; i++ ) {
- al.add(new Integer(i));
- }
- System.out.println("before: " + al);
- for ( int i = 0; i < 2; i++ ) {
- // ここにコードを追加してください。
- }
- System.out.println("after: " + al);
- }
- }
□ 実行結果
$ java ArrayList13 before: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] after: [2, 3, 4, 5, 6, 7, 8, 9, 0, 1]
- // 1401
- // package product;
- import java.util.*;
- // セット商品クラスです。
- // ひとつまたは複数の商品を集めて、割引したものをセット商品として扱います。
- // セット商品に対するフィールドやフィールドを操作するためのメソッドを
- // 提供しています。
- public class SetProduct extends AbstractProduct implements DiscountInterface {
- private int discount; // セット商品割引率
- private List products; // セット商品リスト
- :
- // セット商品を設定します。
- public void setProducts(List products) {
- this.products = products;
- }
- // セット商品を取得します。
- public List getProducts() {
- return products;
- }
- // セット商品に商品を追加します。
- public void add(Product product) {
- products.add(product);
- }
- // セット商品の商品を更新します。
- public void update(Product product) {
- for (int i = 0; i < products.size(); i++) {
- if (((Product)products.get(i)).equals(product)) {
- products.set(i, product);
- break;
- }
- }
- }
- // セット商品の商品を削除します。
- public void remove(String code) {
- for (int i = 0; i < products.size(); i++) {
- if (((Product)products.get(i)).getCode().equals(code)) {
- products.remove(i);
- break;
- }
- }
- }
- }
- // 1401
- // package application;
- // import product.*;
- import java.util.*;
- // 商品クラスをテストするクラスです。
- public class TestProduct {
- public static void main(String[] args) {
- List p = new ArrayList();
- p.add(new DiscountProduct("A001", "パソコン", 188000, 20));
- p.add(new Product("P001", "プリンター", 24000));
- p.add(new DiscountProduct("C001", "CD-ROM", 6500, 10));
- p.add(new Product("M001", "USBメモリー", 9800));
- System.out.println("商品ArrayListのインスタンスを生成しました。 p = " + p);
- for (int i = 0; i < p.size(); i++) {
- System.out.println("商品のインスタンスを生成しました。 p(" + i + ") = " + p.get(i));
- }
- SetProduct s = new SetProduct("SA01", "パソコン・セット", 10, p);
- System.out.println("セット商品のインスタンスを生成しました。 s = " + s);
- System.out.println();
- s.add(new Product("H001", "ハードディスク", 9200));
- System.out.println("セット商品を追加しました。 s = " + s);
- System.out.println(" products = " + s.getProducts());
- System.out.println();
- s.update(new Product("C001", "DVD-ROM", 9200));
- System.out.println("セット商品を変更しました。 s = " + s);
- System.out.println(" products = " + s.getProducts());
- System.out.println();
- s.remove("M001");
- System.out.println("セット商品を削除しました。 s = " + s);
- System.out.println(" products = " + s.getProducts());
- System.out.println();
- }
- }
□ 実行結果
$ java -classpath classes application.TestProduct 商品ArrayListのインスタンスを生成しました。 p = [[A001, パソコン, 150400, 20%], [P001, プリンター, 24000], [C001, CD-ROM, 5850, 10%], [M001, USBメモリー, 9800]] 商品のインスタンスを生成しました。 p(0) = [A001, パソコン, 150400, 20%] 商品のインスタンスを生成しました。 p(1) = [P001, プリンター, 24000] 商品のインスタンスを生成しました。 p(2) = [C001, CD-ROM, 5850, 10%] 商品のインスタンスを生成しました。 p(3) = [M001, USBメモリー, 9800] セット商品のインスタンスを生成しました。 s = [SA01, パソコン・セット, 10, 171045 ] セット商品を追加しました。 s = [SA01, パソコン・セット, 10, 179325] products = [[A001, パソコン, 150400, 20%], [P001, プリンター, 24000], [C001, C D-ROM, 5850, 10%], [M001, USBメモリー, 9800], [H001, ハードディスク, 9200]] セット商品を変更しました。 s = [SA01, パソコン・セット, 10, 182340] products = [[A001, パソコン, 150400, 20%], [P001, プリンター, 24000], [C001, D VD-ROM, 9200], [M001, USBメモリー, 9800], [H001, ハードディスク, 9200]] セット商品を削除しました。 s = [SA01, パソコン・セット, 10, 173520] products = [[A001, パソコン, 150400, 20%], [P001, プリンター, 24000], [C001, D VD-ROM, 9200], [H001, ハードディスク, 9200]]
- import java.util.*;
- public class LinkedList11 {
- public static void main(String[] args) {
- List ll = new LinkedList();
- for (int i = 0; i < args.length; i++) {
- // ここにコードを追加してください。
- }
- System.out.println(ll);
- }
- }
□ 実行結果
$ java LinkedList11 a s d f g [a, s, d, f, g]
- import java.util.*;
- public class LinkedList12 {
- public static void main(String[] args) {
- List ll = new LinkedList();
- for (int i = 0; i < args.length; i++) {
- // ここにコードを追加してください。
- }
- System.out.println(ll);
- }
- }
□ 実行結果
$ java LinkedList12 a s d f g [g, f, d, s, a]
- import java.util.*;
- public class Set011 {
- public static void main(String[] args) {
- Set ts = new TreeSet();
- Set hs = new HashSet();
- for (int i = 0; i < args.length; i++) {
- // ここにコードを追加してください。
- }
- System.out.println("***** TreeSet *****");
- System.out.println(ts);
- for (int i = 0; i < args.length; i++) {
- // ここにコードを追加してください。
- }
- System.out.println("***** HashSet *****");
- System.out.println(hs);
- }
- }
□ 実行結果
$ java Set011 a s d f g ***** TreeSet ***** [a, d, f, g, s] ***** HashSet ***** [d, a, f, g, s]
□ 実行結果
$ java Set0111 -2 3 -4 -5 ***** TreeSet ***** [-5.0, -4.0, -2.0, 1.0, 3.0] ***** HashSet ***** [3.0, -4.0, -5.0, 1.0, -2.0]
List al; ... Iterator itr = al.iterator(); while (itr.hasNext()) { itr.next(); }Top
- import java.util.*;
- public class Set012 {
- public static void main(String[] args) {
- Set ts = new TreeSet();
- for (int i = 0; i < args.length; i++) {
- ts.add(args[i]);
- }
- Iterator itr = ts.iterator(); // イテレーターの宣言と生成
- while (itr.hasNext()) {
- System.out.println(itr.next());
- }
- }
- }
□ 実行結果
$ java Set012 Hello Java World Hello Java World
- // 1402
- // package product;
- import java.util.*;
- // セット商品クラスです。
- // ひとつまたは複数の商品を集めて、割引したものをセット商品として扱います。
- // セット商品に対するフィールドやフィールドを操作するためのメソッドを
- // 提供しています。
- public class SetProduct extends AbstractProduct implements DiscountInterface {
- private int discount; // セット商品割引率
- private Set products; // セット商品リスト
- :
- // 商品の売値の値を取得します。
- public int getPrice() {
- int price = 0;
- Iterator itr = products.iterator();
- while (itr.hasNext()) {
- price += ((Product)itr.next()).getPrice();
- }
- return (int)(price * (1 - discount / 100.0));
- }
- :
- // セット商品を設定します。
- public void setProducts(Set products) {
- this.products = products;
- }
- // セット商品を取得します。
- public Set getProducts() {
- return products;
- }
- // セット商品に商品を追加します。
- public void add(Product product) {
- products.add(product);
- }
- // セット商品の商品を更新します。
- public void update(Product product) {
- products.remove(product);
- products.add(product);
- }
- // セット商品の商品を削除します。
- public void remove(String code) {
- Product p = new Product(code, "", 0);
- products.remove(p);
- }
- }
- // 1402
- package application;
- import product.*;
- import java.util.*;
- // 商品クラスをテストするクラスです。
- public class TestProduct {
- public static void main(String[] args) {
- Set p = new HashSet();
- p.add(new DiscountProduct("A001", "パソコン", 188000, 20));
- p.add(new Product("P001", "プリンター", 24000));
- p.add(new DiscountProduct("C001", "CD-ROM", 6500, 10));
- p.add(new Product("M001", "USBメモリー", 9800));
- System.out.println("商品HashSetのインスタンスを生成しました。 p = " + p);
- SetProduct s = new SetProduct("SA01", "パソコン・セット", 10, p);
- System.out.println("セット商品のインスタンスを生成しました。 s = " + s);
- System.out.println();
- s.add(new Product("H001", "ハードディスク", 9200));
- System.out.println("セット商品を追加しました。 s = " + s);
- System.out.println(" products = " + s.getProducts());
- System.out.println();
- s.update(new Product("C001", "DVD-ROM", 9200));
- System.out.println("セット商品を変更しました。 s = " + s);
- System.out.println(" products = " + s.getProducts());
- System.out.println();
- s.remove("M001");
- System.out.println("セット商品を削除しました。 s = " + s);
- System.out.println(" products = " + s.getProducts());
- System.out.println();
- }
- }
□ 実行結果
$ java -classpath classes application.TestProduct 商品HashSetのインスタンスを生成しました。 p = [[M001, USBメモリー, 9800], [C001, CD-ROM, 5850, 10%], [P001, プリンター, 24000], [A001, パソコン, 150400, 20%]] セット商品のインスタンスを生成しました。 s = [SA01, パソコン・セット, 10, 171045 ] セット商品を追加しました。 s = [SA01, パソコン・セット, 10, 179325] products = [[M001, USBメモリー, 9800], [C001, CD-ROM, 5850, 10%], [P001, プリ ンター, 24000], [H001, ハードディスク, 9200], [A001, パソコン, 150400, 20%]] セット商品を変更しました。 s = [SA01, パソコン・セット, 10, 182340] products = [[M001, USBメモリー, 9800], [C001, DVD-ROM, 9200], [P001, プリンタ ー, 24000], [H001, ハードディスク, 9200], [A001, パソコン, 150400, 20%]] セット商品を削除しました。 s = [SA01, パソコン・セット, 10, 173520] products = [[C001, DVD-ROM, 9200], [P001, プリンター, 24000], [H001, ハードデ ィスク, 9200], [A001, パソコン, 150400, 20%]]
- // 1403
- // package product;
- // 抽象商品クラスです。
- // 商品を扱うクラスが持っていなければならないメソッドを提供しています。
- public abstract class AbstractProduct implements Comparable {
- private String code; // 商品コード
- private String name; // 商品名
- // 商品オブジェクトの大小関係を判定します。
- public int compareTo(Object obj) {
- return this.getCode().compareTo(((AbstractProduct)obj).getCode());
- }
- :
- }
- // 1403
- // package application;
- // import product.*;
- import java.util.*;
- // 商品クラスをテストするクラスです。
- public class TestProduct {
- public static void main(String[] args) {
- TreeSet p = new TreeSet();
- p.add(new DiscountProduct("A001", "パソコン", 188000, 20));
- p.add(new Product("P001", "プリンター", 24000));
- p.add(new DiscountProduct("C001", "CD-ROM", 6500, 10));
- p.add(new Product("M001", "USBメモリー", 9800));
- System.out.println("商品TreeSetのインスタンスを生成しました。 p = " + p);
- SetProduct s = new SetProduct("SA01", "パソコン・セット", 10, p);
- System.out.println("セット商品のインスタンスを生成しました。 s = " + s);
- System.out.println();
- s.add(new Product("H001", "ハードディスク", 9200));
- System.out.println("セット商品を追加しました。 s = " + s);
- System.out.println(" products = " + s.getProducts());
- System.out.println();
- s.update(new Product("C001", "DVD-ROM", 9200));
- System.out.println("セット商品を変更しました。 s = " + s);
- System.out.println(" products = " + s.getProducts());
- System.out.println();
- s.remove("M001");
- System.out.println("セット商品を削除しました。 s = " + s);
- System.out.println(" products = " + s.getProducts());
- System.out.println();
- }
- }
□ 実行結果
$ java -classpath classes application.TestProduct 商品TreeSetのインスタンスを生成しました。 p = [[A001, パソコン, 150400, 20%], [C 001, CD-ROM, 5850, 10%], [M001, USBメモリー, 9800], [P001, プリンター, 24000]] セット商品のインスタンスを生成しました。 s = [SA01, パソコン・セット, 10, 171045 ] セット商品を追加しました。 s = [SA01, パソコン・セット, 10, 179325] products = [[A001, パソコン, 150400, 20%], [C001, CD-ROM, 5850, 10%], [H001, ハードディスク, 9200], [M001, USBメモリー, 9800], [P001, プリンター, 24000]] セット商品を変更しました。 s = [SA01, パソコン・セット, 10, 182340] products = [[A001, パソコン, 150400, 20%], [C001, DVD-ROM, 9200], [H001, ハー ドディスク, 9200], [M001, USBメモリー, 9800], [P001, プリンター, 24000]] セット商品を削除しました。 s = [SA01, パソコン・セット, 10, 173520] products = [[A001, パソコン, 150400, 20%], [C001, DVD-ROM, 9200], [H001, ハー ドディスク, 9200], [P001, プリンター, 24000]]
- import java.util.*;
- public class ListIterator011 {
- public static void main(String[] args) {
- List al = new ArrayList();
- for (int i = 0; i < args.length; i++) {
- al.add(args[i]);
- }
- System.out.println(al);
- System.out.println("***** next *****");
- for (ListIterator i = al.listIterator(0); i.hasNext(); ) {
- System.out.println(i.next());
- }
- System.out.println("***** previous *****");
- for (ListIterator i = al.listIterator(al.size()); i.hasPrevious(); ) {
- System.out.println(i.previous());
- }
- }
- }
□ 実行結果
$ java ListIterator011 Hello Java World [Hello, Java, World] ***** next ***** Hello Java World ***** previous ***** World Java Hello
- import java.util.*;
- public class Map011 {
- public static void main(String[] args) {
- Map ts = new TreeMap();
- for (int i = 0; i < args.length; i += 2) {
- ts.put(args[i], args[i+1]);
- }
- System.out.println("***** TreeMap *****");
- System.out.println(ts);
- Map hs = new HashMap();
- for (int i = 0; i < args.length; i += 2) {
- hs.put(args[i], args[i+1]);
- }
- System.out.println("***** HashMap *****");
- System.out.println(hs);
- }
- }
□ 実行結果
$ java Map011 3 c 2 b 5 e 1 a 4 d ***** TreeMap ***** {1=a, 2=b, 3=c, 4=d, 5=e} ***** HashMap ***** {3=c, 5=e, 2=b, 4=d, 1=a}
- import java.util.*;
- public class Map012 {
- public static void main(String[] args) {
- Map al = new TreeMap();
- al.put("maruno", "システム部");
- al.put("yamada", "開発部");
- al.put("suzuki", "システム部");
- al.put("sato", "営業部");
- System.out.println("before operation: " + al);
- switch (args[0].charAt(0)) {
- case 'q':
- System.out.println(args[1] + " is " + al.get(args[1]));
- break;
- case 'a':
- al.put(args[1], args[2]);
- System.out.println(args[1] + " is added to TreeMap.");
- break;
- case 'u':
- al.put(args[1], args[2]);
- System.out.println(args[1] + " is updated to TreeMap.");
- break;
- case 'd':
- al.remove(args[1]);
- System.out.println(args[1] + " is removed from TreeMap.");
- break;
- default:
- break;
- }
- System.out.println("after operation: " + al);
- }
- }
□ 実行結果
$ java Map012 q saito before operation: {maruno=システム部, sato=営業部, suzuki=システム部, yamada=開発部} saito is null after operation: {maruno=システム部, sato=営業部, suzuki=システム部, yamada=開発部} $ java Map012 a saito 総務部 before operation: {maruno=システム部, sato=営業部, suzuki=システム部, yamada=開発部} saito is added to TreeMap. after operation: {maruno=システム部, saito=総務部, sato=営業部, suzuki=システム部, yamada=開発部} $ java Map012 u suzuki 営業部 before operation: {maruno=システム部, sato=営業部, suzuki=システム部, yamada=開発部} suzuki is updated to TreeMap. after operation: {maruno=システム部, sato=営業部, suzuki=営業部, yamada=開発部} $ java Map012 d sato before operation: {maruno=システム部, sato=営業部, suzuki=システム部, yamada=開発部} sato is removed from TreeMap. after operation: {maruno=システム部, suzuki=システム部, yamada=開発部}
- // 1404
- package product;
- import java.util.*;
- // セット商品クラスです。
- // ひとつまたは複数の商品を集めて、割引したものをセット商品として扱います。
- // セット商品に対するフィールドやフィールドを操作するためのメソッドを
- // 提供しています。
- public class SetProduct implements ProductInterface {
- private String code; // セット商品コード
- private String name; // セット商品名
- private int discount; // セット商品割引率
- private Map products; // セット商品リスト
- // セット商品クラスのコンストラクター。
- public SetProduct(String code, String name, int discount, Map products) {
- setCode(code);
- setName(name);
- setDiscount(discount);
- setProducts(products);
- }
- :
- // セット商品を取得します。
- public Map getProducts() {
- return products;
- }
- // 商品を追加します。
- public void add(Product product) {
- products.put(product.getCode(), product);
- }
- // 商品を更新します。
- public void update(Product product) {
- products.put(product.getCode(), product);
- }
- // 商品を削除します。
- public void remove(String code) {
- products.remove(code);
- }
- }
- // 1404
- package application;
- import product.*;
- import java.util.*;
- // 商品クラスをテストするクラスです。
- public class TestProduct {
- public static void main(String[] args) {
- Map p = new TreeMap();
- p.put("A001", new DiscountProduct("A001", "パソコン", 188000, 20));
- p.put("P001", new Product("P001", "プリンター", 24000));
- p.put("C001", new DiscountProduct("C001", "CD-ROM", 6500, 10));
- p.put("M001", new Product("M001", "USBメモリー", 9800));
- System.out.println("商品TreeMapのインスタンスを生成しました。 p = " + p);
- SetProduct s = new SetProduct("SA01", "パソコン・セット", 10, p);
- System.out.println("セット商品のインスタンスを生成しました。 s = " + s);
- System.out.println();
- s.add(new Product("H001", "ハードディスク", 9200));
- System.out.println("セット商品を追加しました。 s = " + s);
- System.out.println(" products = " + s.getProducts());
- System.out.println();
- s.update(new Product("C001", "DVD-ROM", 9200));
- System.out.println("セット商品を変更しました。 s = " + s);
- System.out.println(" products = " + s.getProducts());
- System.out.println();
- s.remove("M001");
- System.out.println("セット商品を削除しました。 s = " + s);
- System.out.println(" products = " + s.getProducts());
- System.out.println();
- }
- }
□ 実行結果
$ java -classpath classes application.TestProduct 商品TreeMapのインスタンスを生成しました。 p = {A001=[A001, パソコン, 150400, 20% ], C001=[C001, CD-ROM, 5850, 10%], M001=[M001, USBメモリー, 9800], P001=[P001, プリンター, 24000]} セット商品のインスタンスを生成しました。 s = [SA01, パソコン・セット, 10, 171045 ] セット商品を追加しました。 s = [SA01, パソコン・セット, 10, 179325] products = {A001=[A001, パソコン, 150400, 20%], C001=[C001, CD-ROM, 5850, 10%] , H001=[H001, ハードディスク, 9200], M001=[M001, USBメモリー, 9800], P001=[P001, プリンター, 24000]} セット商品を変更しました。 s = [SA01, パソコン・セット, 10, 182340] products = {A001=[A001, パソコン, 150400, 20%], C001=[C001, DVD-ROM, 9200], H0 01=[H001, ハードディスク, 9200], M001=[M001, USBメモリー, 9800], P001=[P001, プ リンター, 24000]} セット商品を削除しました。 s = [SA01, パソコン・セット, 10, 173520] products = {A001=[A001, パソコン, 150400, 20%], C001=[C001, DVD-ROM, 9200], H0 01=[H001, ハードディスク, 9200], P001=[P001, プリンター, 24000]}
0101 | 丸野 | maruno@abc.co.jp |
0201 | 山田 | yamada@def.com |
0202 | 鈴木 | suzuki@def.com |
0102 | 佐藤 | sato@abc.co.jp |
- public class EmailList {
- String id;
- String name;
- String email;
- EmailList(String id, String name, String email) {
- this.id = id;
- this.name = name;
- this.email = email;
- }
- }
- import java.util.*;
- public class EmailManage01 {
- public static void main(String[] args) {
- Map emailObject = new HashMap();
- // emailObject の設定
- final String[][] EMAIL_LIST = {
- {"0101", "丸野", "maruno@abc.co.jp"}
- , {"0201", "山田", "yamada@def.com"}
- , {"0202", "鈴木", "suzuki@def.com"}
- , {"0102", "佐藤", "sato@abc.co.jp"}
- };
- for (int i = 0; i < EMAIL_LIST.length; i++) {
- emailObject.put(EMAIL_LIST[i][0],
- new EmailList(EMAIL_LIST[i][0], EMAIL_LIST[i][1], EMAIL_LIST[i][2]));
- }
- // emailObject の検索
- if (/* ここにコードを記述してください */) {
- EmailList el = (EmailList)emailObject.get(args[0]);
- System.out.println("id = " + args[0]);
- System.out.println("name = " + el.name);
- System.out.println("email = " + el.email);
- } else {
- System.out.println("id = " + args[0] + " はありませんでした。");
- }
- }
- }
□ 実行結果
$ java EmailManage01 0102 id = 0102 name = 佐藤 email = sato@abc.co.jp $ java EmailManage01 0203 id = 0203 はありませんでした。
□ email名簿クラス("EmailList.java", 変更ありません)
- public class EmailList {
- String id;
- String name;
- String email;
- EmailList(String id, String name, String email) {
- this.id = id;
- this.name = name;
- this.email = email;
- }
- public String toString() {
- return "[" + id + ", " + name + ", " + email + "]";
- }
- }
□ email管理クラス("EmailManage03.java")
- import java.util.*;
- public class EmailManage03 {
- public static void main(String[] args) {
- Map emailObject = new HashMap(); // email リスト
- Map emailIndex = new HashMap(); // name と id を対応づける Map
- /*
- * emailIndex emailObject
- * name id id name email
- * ---- ---- ---- ---- -----------------
- * 丸野 0101 0101 丸野 maruno@abc.co.jp
- * 山田 0201 0201 山田 yamada@def.com
- * 鈴木 0202 0202 鈴木 suzuki@def.com
- * 佐藤 0102 0102 佐藤 sato@abc.co.jp
- */
- // emailObject の設定
- final String[][] EMAIL_LIST = { { "0101", "丸野", "maruno@abc.co.jp" },
- { "0201", "山田", "yamada@def.com" },
- { "0202", "鈴木", "suzuki@def.com" },
- { "0102", "佐藤", "sato@abc.co.jp" } };
- for (int i = 0; i < EMAIL_LIST.length; i++) {
- emailObject.put(EMAIL_LIST[i][0], new EmailList(EMAIL_LIST[i][0],
- EMAIL_LIST[i][1], EMAIL_LIST[i][2]));
- emailIndex.put(EMAIL_LIST[i][1], EMAIL_LIST[i][0]); // インデックスの設定
- }
- // emailObject の検索
- if (emailObject.containsKey(emailIndex.get(args[0]))) {
- // ここにコードを追加してください。
- System.out.println("id = " + el.id);
- System.out.println("name = " + el.name);
- System.out.println("email = " + el.email);
- } else {
- System.out.println("name = " + args[0] + " はありませんでした。");
- }
- }
- }
□ 実行結果
$ java EmailManage03 山田 id = 0201 name = 山田 email = yamada@def.com $ java EmailManage03 山本 name = 山本 はありませんでした。
照会 | なし または Q |
java EmailManage02 0101 または java EmailManage02 Q 0101 |
---|---|---|
追加 / 変更 | A / U |
java EmailManage02 A 0109 田中 tanaka@ghi.co.jp |
削除 | D |
java EmailManage02 D 0101 |
□ email名簿クラス("EmailList.java")
- public class EmailList {
- String id;
- String name;
- String email;
- EmailList(String id, String name, String email) {
- this.id = id;
- this.name = name;
- this.email = email;
- }
- public String toString() {
- return "[" + id + ", " + name + ", " + email + "]";
- }
- }
□ email管理クラス("EmailManage02.java")
- import java.util.*;
- public class EmailManage02 {
- static Map emailObject = new HashMap();
- public static void main(String[] args) {
- // emailObject の設定
- final String[][] EMAIL_LIST = {
- {"0101", "丸野", "maruno@abc.co.jp"}
- , {"0201", "山田", "yamada@def.com"}
- , {"0202", "鈴木", "suzuki@def.com"}
- , {"0102", "佐藤", "sato@abc.co.jp"}
- };
- for (int i = 0; i < EMAIL_LIST.length; i++) {
- emailObject.put(EMAIL_LIST[i][0],
- new EmailList(EMAIL_LIST[i][0], EMAIL_LIST[i][1], EMAIL_LIST[i][2]));
- }
- System.out.println("emailObject = " + emailObject);
- // 処理の切り分け
- switch (args[0].charAt(0)) {
- case 'q':
- case 'Q':
- queryEmailObject(args[1]);
- break;
- case 'd':
- case 'D':
- deleteEmailObject(args[1]);
- break;
- case 'a':
- case 'A':
- case 'u':
- case 'U':
- addEmailObject(args[1], args[2], args[3]);
- break;
- default:
- queryEmailObject(args[0]);
- break;
- }
- System.out.println("emailObject = " + emailObject);
- }
- // emailObject の照会
- static void queryEmailObject(String id) {
- // ここにコードを追加してください。
- }
- // emailObject の削除
- static void deleteEmailObject(String id) {
- // ここにコードを追加してください。
- }
- // emailObject の追加 / 変更
- static void addEmailObject(String id, String name, String email) {
- // ここにコードを追加してください。
- }
- }
□ 実行結果
$ java EmailManage02 0101 emailObject = {0101=[0101, 丸野, maruno@abc.co.jp], 0202=[0202, 鈴木, suzuki@def .com], 0102=[0102, 佐藤, sato@abc.co.jp], 0201=[0201, 山田, yamada@def.com]} id = 0101 name = 丸野 email = maruno@abc.co.jp emailObject = {0101=[0101, 丸野, maruno@abc.co.jp], 0202=[0202, 鈴木, suzuki@def .com], 0102=[0102, 佐藤, sato@abc.co.jp], 0201=[0201, 山田, yamada@def.com]} $ java EmailManage02 q 0101 emailObject = {0101=[0101, 丸野, maruno@abc.co.jp], 0202=[0202, 鈴木, suzuki@def .com], 0102=[0102, 佐藤, sato@abc.co.jp], 0201=[0201, 山田, yamada@def.com]} id = 0101 name = 丸野 email = maruno@abc.co.jp emailObject = {0101=[0101, 丸野, maruno@abc.co.jp], 0202=[0202, 鈴木, suzuki@def .com], 0102=[0102, 佐藤, sato@abc.co.jp], 0201=[0201, 山田, yamada@def.com]} $ java EmailManage02 d 0101 emailObject = {0101=[0101, 丸野, maruno@abc.co.jp], 0202=[0202, 鈴木, suzuki@def .com], 0102=[0102, 佐藤, sato@abc.co.jp], 0201=[0201, 山田, yamada@def.com]} id = 0101 を削除しました。 emailObject = {0202=[0202, 鈴木, suzuki@def.com], 0102=[0102, 佐藤, sato@abc.co. jp], 0201=[0201, 山田, yamada@def.com]} $ java EmailManage02 a 0901 田中 tanaka@ghi.co.jp emailObject = {0101=[0101, 丸野, maruno@abc.co.jp], 0202=[0202, 鈴木, suzuki@def .com], 0102=[0102, 佐藤, sato@abc.co.jp], 0201=[0201, 山田, yamada@def.com]} id = 0901 を追加しました。 emailObject = {0101=[0101, 丸野, maruno@abc.co.jp], 0202=[0202, 鈴木, suzuki@def .com], 0102=[0102, 佐藤, sato@abc.co.jp], 0201=[0201, 山田, yamada@def.com], 090 1=[0901, 田中, tanaka@ghi.co.jp]}