Hashtable存取数据代码实例

// 输入一个英语句子,把里面每个单词出现的次数统计出来

package  ch22;

import  java.util.Enumeration;
import  java.util.Hashtable;
import  java.util.StringTokenizer;

import  javax.swing.JFrame;
import  javax.swing.JOptionPane;

public   class  Exec22_10  extends  JFrame  {
    
public Exec22_10() {
        String out 
= "", output = "";
        Hashtable ht 
= new Hashtable();
        String str 
= JOptionPane.showInputDialog("输入一个英语句子");
        StringTokenizer st 
= new StringTokenizer(str, " ,.?!");
        ht.clear();
        
// 存在hash表里的数据,一定要Enumeration才可以掉出来的
        while (st.hasMoreTokens()) {
            out 
= st.nextToken();// 无符号单词
            for (int i = 0; i < out.length(); i++{
                output 
= String.valueOf(out.charAt(i));
                Object count 
= ht.get(output);
                
if (count == null{
                    count 
= (Integer) 1;
                    ht.put(output, count);
                }
 else {
                    
int temp = ((Integer) count).intValue();
                    ht.put(output, 
new Integer(temp + 1));
                }

            }


            System.out.println(
"单词 出现次数 ");
            
// 这个是把村在hash表里的东西取出来
            Enumeration items = ht.keys();// 返回此哈希表中的键的枚举,就是把所有的额键给列举出来
            while (items.hasMoreElements()) {
                String key 
= (String) (items.nextElement());
                Object val 
= ht.get(key);
                System.out.println(key 
+ " " + val + " ");
            }


        }

    }


    
public static void main(String[] args) {
        Exec22_10 fegor 
= new Exec22_10();
        fegor.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        fegor.setVisible(
true);
        fegor.setSize(
600460);
    }

}

/*
Object count;

ht.put(Object,Object)
可以这样放

ht.put(Object,count)
加入我想把count+1后再放进去,不能直接加
定义个第三者
int temp;

先把count强制转换成Integer,然后再取出Integer里面的值
((Integer)count).intValue();
把取出来的值赋给temp
temp = ((Integer)count).intValue();
新建一个Integer对象,
Integer fegor = new Integer(temp+1);
然后放到里面去。
ht.put(Object,fegor);

Object对象要想得到int值,就必须强制抓换取值。
也就是说,int数要想坐到Object的位置上,必须是Integer对象。

只要是这样的就是强制转换
(Integer)obj;
这样说明是一个Integer对象,new的一个
Integer(temp)
*/

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值