package map1;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class T1 {
public static void main(String args[]) {
HashMap hashmap = new HashMap();
hashmap.put("dog", "犬");
hashmap.put("rabbit", "兎");
hashmap.put("cat", "猫");
hashmap.put("bug", "虫");
hashmap.put("chicken", "鶏");
hashmap.put("cattle", "牛");
hashmap.put("pig", "豚");
Set set = hashmap.entrySet();
Iterator iterator = set.iterator();
while (iterator.hasNext()) {
Map.Entry mapentry = (Map.Entry) iterator.next();
System.out.println(mapentry.getKey() + "==" + mapentry.getValue());
}
}
}
运行结果:
chicken/鶏
rabbit/兎
cat/猫
bug/虫
cattle/牛
dog/犬
pig/豚
分析:
HashMap实际上是一种数据结构,数据按照操作系统设定的顺序进行存放。K key, V value) 方法就是存入数据的方法。key相当于一个名字,value就是其对应的内容。当调用
package map1;
public class T2 {
public static void main(String args[]) {
String[] colors = {
"白","黒","黄","水色","赤","灰色","紫","オリーブ","栗色"
};
System.out.print("今日、君と似合う服の色は"+colors[(int)(colors.length*Math.random())]+"です。");
}
}
运行结果(这只是随机产生的结果中的一个):
今日、君と似合う服の色はオリーブです。
分析:
Math.random())方法产生的将是一个0~1之间的double型的数,将它与colors.length(字符串长度)相乘可以确保产生的是在数组下标范围内的数。
例三:
程序:
public class T3 {
public static void main(String args[]) {
String[] strings = {"yanlanzhen", "zhaoweidong", "xiexiaojing",
"liuxuebing", "zhaoyang", "liupengfei"};
String temporary = null;
for (int j =strings.length-1; j>0; j--) {
for (int i = 0; i < j; i++) {
if (strings[i].compareTo(strings[i + 1]) <= 0) {
temporary = strings[i];
strings[i] = strings[i + 1];
strings[i + 1] = temporary;
}
}
}
for (int i = 0; i < strings.length; i++) {
System.out.print("\""+strings[i]+"\"" + " ");
}
}
}
运行结果:
"zhaoyang" "zhaoweidong" "yanlanzhen" "xiexiaojing" "liuxuebing" "liupengfei"
分析:
这是对字符串进行直接插入排序的程序,可以在这个程序中将前两个用到的方法综合运用,不妨试一下?
我是这样想的:
综合的例子:
package map1;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class T123 {
public static void main(String args[]) {
ArrayList strings = new ArrayList();
strings.add("yanlanzhen");
strings.add("zhaoweidong");
strings.add("xiexiaojing");
strings.add("liuxuebing");
strings.add("zhaoyang");
strings.add("liupengfei");
String temporaryS = null;
int temporaryI = 0;
String[] rStrings = new String[6];
HashMap hashmap = new HashMap();
for (int i = 0; i < strings.size(); i++) {
hashmap.put(strings.get(i), i+"");
}
Set set = hashmap.entrySet();
Iterator iterator = set.iterator();
System.out.print("HashMapにある順番は ");
while (iterator.hasNext()) {
Map.Entry mapentry = (Map.Entry) iterator.next();
System.out.print(mapentry.getValue() + " ");
}
for (int j = strings.size(); j > 0; j--) {
temporaryI = (int) (j * Math.random());
rStrings[j - 1] = strings.get(temporaryI);
strings.remove(temporaryI);
}
System.out.print("\nランダム化後の順番は ");
for (int i = 0; i < rStrings.length; i++) {
System.out.print(hashmap.get(rStrings[i]) + " ");
}
for (int j = rStrings.length - 1; j > 0; j--) {
for (int i = 0; i < j; i++) {
if (rStrings[i].compareTo(rStrings[i + 1]) <= 0) {
temporaryS = rStrings[i];
rStrings[i] = rStrings[i + 1];
rStrings[i + 1] = temporaryS;
}
}
}
System.out.print("\nソートされた順番は ");
for (int i = 0; i < rStrings.length; i++) {
System.out.print(hashmap.get(rStrings[i])+" ");
}
}
}
运行结果:
HashMapにある順番は 0 3 1 2 5 4
ランダム化後の順番は 5 2 3 1 4 0
ソートされた順番は 4 1 0 2 3 5
posted on 2007-10-17 16:24 静儿 阅读(1552) 评论(2) 编辑 收藏 所属分类: 技术