lesson6.6Hashtable使用
来源:互联网 发布:2kol怎么显示数据 编辑:程序博客网 时间:2024/06/05 10:41
Hashtable类是存储键值对的类
常用函数有
put(关键字对象,值对象);//添加键值对,若添加的关键字已经存在,则会覆盖原来的值
get(关键字对象);//由关键字对象返回值对象
keys();返回所有的关键字对象,返回Enurmeration对象,使用方法见lesson6.5
注意:用作关键字的类必须覆盖Object.hashCode()方法和Object.equals方法。
习题:编写可用作Hashtable关键字的类并使用。
import java.util.Enumeration;import com.sun.org.apache.xalan.internal.xsltc.runtime.Hashtable;public class TestHashtable {public static void main(String [] args){Hashtable ht = new Hashtable();ht.put(new MyKey("zhangsan", 15), new Integer(1));ht.put(new MyKey("lisi", 20), new Integer(2));ht.put(new MyKey("wangwu", 25), new Integer(3));ht.put(new MyKey("zhaoliu", 30), new Integer(4));Enumeration e = ht.keys();//返回所有关键字对象,配合Enumeration类使用while(e.hasMoreElements()){MyKey mk = (MyKey)e.nextElement();System.out.print(mk);//直接打印一个类对象,会自动调用toString方法,要覆盖该方法,否则是一串乱码System.out.println("="+ht.get(mk));}System.out.println(new String("ax").hashCode()==new String("ax").hashCode());//这里只是实验相同字符串hashCode一样,String内容相同则占用同一块内存}}//写一个可用作Hashtable关键字的类class MyKey{String name;int age;MyKey(String name, int age){this.name = name;this.age = age;}//需要覆盖equals类和hashCode类,equals是判断两个对象内容是否相等,//hashCode返回散列码,是有对象在内存中的地址转换而来的,也是用来判断对象是否相同的public boolean equals(Object o)//这里的形参都是object,具体使用时还是要强制转换{if(o instanceof MyKey);//instanceof是一个运算符,用来判断对象是否属于某个类{MyKey mytmp = (MyKey)o;if(mytmp.name.equals(this.name) && mytmp.age==this.age){return true;}else{return false;}}}public int hashCode(){return name.hashCode()+age;//String类有hashCode方法,StringBuffer里没有哦!}public String toString(){return name+age;//为了打印时自动调用}}
有几个要注意的点:
String类有hashCode方法,直接调用就可以。
打印类对象会自动调用toString函数,可以按自己的要求覆盖打印想要的东西。
0 0
- lesson6.6Hashtable使用
- lesson6.6PipedInputStream和ByteArrayInputStream类
- Hashtable使用
- 使用Hashtable
- HashTable 使用
- HashTable 使用
- 在 Delphi 6 中使用 Hashtable
- LogicJava---Lesson6
- jsp lesson6
- Lesson6-异常
- lesson6-1
- lesson6-2
- C#中使用HashTable
- HashTable的使用示例
- hashtable使用【转贴】
- Hashtable的使用
- Hashtable的使用
- Hashtable 初次使用
- 自动将千以内的含4的数加一,其他不变。
- CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13+博客系统WordPress3.3.2
- VS 2008 使用静态库的时候报错
- MFC中窗口刷新函数详解
- VMware中ubuntu忘记密码解决办法
- lesson6.6Hashtable使用
- LeetCode #17 Letter Combinations of a Phone Number
- C++ 中vector的使用方法
- 【JavaSE系列-入门篇3】——Java技术如何改变我的生活?
- 解决启动Tomcat时遇到INFO: Destroying ProtocolHandler ["ajp-apr-8009"]
- 细粒度图像识别Object-Part Attention Driven Discriminative Localization for Fine-grained Image Classificatio
- Ubuntu 16.04配置安装YouComPleteMe等插件
- Gson工具类
- Android使用gradle打包Assets目录