--/--/-- (--) スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサー広告 |


2011/07/04 (Mon) Javaのコードをスリム化する

JAVA応用3日目の最後に載せたサンプルコードの無駄を省きます。
今回の方針は、

不要な変数は使わない

変数を使うと代入する手間が必要になったり、第三者がコードを見た場合、その変数が何を示すのか把握に時間を要してしまいます。このプログラムにおいては次の変数は必要ありません。

boolean sts = false;
String item = null;

以下、これらの変数を使っていた箇所を書き換えます。

item → itemList[i]
sts → hashSet.add(itemList[i]) or hashSet.remove("商品A")

繰り返しはfor文で行う

2回くらいそのまま書いても変わらない気もしますが、後でコードを書き換えることになった場合、同じことを複数回する必要があり、手間が増しその分記述ミスの可能性も増してしまいます。さらに、第三者がこのコードを扱う場合に繰り返し文を使うと処理を把握しやすくなります。

その他

インポート文をまとめましたが、これは表示しておいた方が何をインポートしているのか分かりやすいためそのままにしておいた方が良いかもしれません。また、条件演算子(XXX ? "YYY" : "ZZZ" ;)を使った方がコード自体は短くなります。

以下、「続きをよむ」で改変前と改変後のコードを表示します。


改変前
オレンジは不要箇所)

import java.util.HashSet;
import java.util.Iterator;
public class Test {
static String[] itemList = { "商品A", "商品E", "商品C", "商品Z", "商品A" };
public static void main(String[] args) {
boolean sts = false;
String item = null;
HashSet<String> hashSet = new HashSet<String>();
System.out.println("商品の登録");
for (int i = 0; i < itemList.length; i++) {
item = itemList[i];
sts = hashSet.add(item);
if (sts) {
System.out.println(item + "の登録に成功しました。" + "HashCode:"
+ item.hashCode());
} else {
System.out.println(item + "の登録に失敗しました。" + "HashCode:"
+ item.hashCode());
}
}
System.out.println("\n商品名:HashCode");
Iterator<String> it = hashSet.iterator();
while (it.hasNext()) {
String key = it.next();
System.out.println(key + ":" + key.hashCode());
}
sts = hashSet.remove("商品A");
if (sts) {
System.out.println("商品Aを削除しました。");
} else {
System.out.println("商品Aはありません");
}
sts = hashSet.remove("商品A");
if (sts) {
System.out.println("商品Aを削除しました。");
} else {
System.out.println("商品Aはありません");
}
}
}

改変後

import java.util.*;
public class Test {
public static void main(String[] args) {
String[] itemList = { "商品A", "商品E", "商品C", "商品Z", "商品A" };
HashSet<String> hashSet = new HashSet<String>();
System.out.println("商品の登録");
for (int i = 0; i < itemList.length; i++) {
if (hashSet.add(itemList[i])) {
System.out.println(itemList[i] + "の登録に成功しました。" + "HashCode:"
+ itemList[i].hashCode());
} else {
System.out.println(itemList[i] + "の登録に失敗しました。" + "HashCode:"
+ itemList[i].hashCode());
}
}
System.out.println("\n商品名:HashCode");
Iterator<String> it = hashSet.iterator();
while (it.hasNext()) {
String key = it.next();
System.out.println(key + ":" + key.hashCode());
}
for (int i = 0; i < 2; i++) {
if (hashSet.remove("商品A")) {
System.out.println("商品Aを削除しました。");
} else {
System.out.println("商品Aはありません");
}
}
}
}

プログラミング | trackback(0) | comment(0) |


<<JAVA応用4日目(ソートとSetのまとめ) | TOP | 歪み>>

comment











管理人のみ閲覧OK


trackback

trackback_url
http://kononushi.blog46.fc2.com/tb.php/522-1020b63a

| TOP |

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。