随笔-60  评论-117  文章-0  trackbacks-0
例一:
程序:

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实际上是一种数据结构,数据按照操作系统设定的顺序进行存放。put(K key, V value) 方法就是存入数据的方法。key相当于一个名字,value就是其对应的内容。当调用get(Object key) 方法时,将得到其value。
hashmap.entrySet()(Set化)可以说是将其对象化,它就不再是一种结构,而成了数据。
set.iterator()(迭代化)就是对数据进行管理,相当于是给它添加了指针,用户就可以对数据进行查找和删除。
例二:
程序:

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<String> strings = new ArrayList<String>();
  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 静儿 阅读(1526) 评论(2)  编辑  收藏 所属分类: 技术

评论:
# 13871017378[未登录] 2007-10-21 17:59 | j2ee
Sql Server 中一个非常强大的日期格式化函数
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112): 20060516
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM


常用:
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16  回复  更多评论
  
# re: java程序的简单实例分析 2007-10-21 18:46 | 静儿
哎?你为什么要叫j2ee呢,我们都用j2se了。呵呵,玩笑,莫怪。@j2ee
  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: