javahashtable
A. java里面可以把对象存储为Hashtable类型吗
关于你的问题,答案是肯定的。
你所问的问题,跟报错的原因毫无关系。
报的异常是:无效的类型转换异常
B. Java中HashMap与HashTable的异同
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空版(null)键权值(key),由于非线程安全,效率上可能高于Hashtable。
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。
Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。
C. Java中HashMap和Hashtable分别是干什么用的就是说他们有什么用途什么时候用
1 HashMap不是线程安全的
hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。
2 HashTable是线程安全的一个Collection。
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。
Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
D. java中hashtable怎样存储数据和读取数据
Hashtable-哈希表类
以哈希表的形式存储数据,数据的形式是键值对.
特点:
查找速度快,遍历相对慢
键值不能有空指针和重复数据
创建
Hashtable<Integer,String> ht=new
Hashtable<Integer,String>();
添值
ht.put(1,"Andy");
ht.put(2,"Bill");
ht.put(3,"Cindy");
ht.put(4,"Dell");
ht.put(5,"Felex");
ht.put(6,"Edinburg");
ht.put(7,"Green");
取值
String str=ht.get(1);
System.out.println(str);// Andy
对键进行遍历
Iterator it = ht.keySet().iterator();
while (it.hasNext()) {
Integer key = (Integer)it.next();
System.out.println(key);
}
对值进行遍历
Iterator it = ht.values().iterator();
while (it.hasNext()) {
String value =(String) it.next();
System.out.println(value);
}
取Hashtable记录数
Hashtable<Integer,String> ht=new Hashtable<Integer,String>();
ht.put(1,"Andy");
ht.put(2,"Bill");
ht.put(3,"Cindy");
ht.put(4,"Dell");
ht.put(5,"Felex");
ht.put(6,"Edinburg");
ht.put(7,"Green");
int i=ht.size();// 7
删除元素
Hashtable<Integer,String> ht=new Hashtable<Integer,String>();
ht.put(1,"Andy");
ht.put(2,"Bill");
ht.put(3,"Cindy");
ht.put(4,"Dell");
ht.put(5,"Felex");
ht.put(6,"Edinburg");
ht.put(7,"Green");
ht.remove(1);
ht.remove(2);
ht.remove(3);
ht.remove(4);
System.out.println(ht.size());// 3
Iterator it = ht.values().iterator();
while (it.hasNext()) {
// Get value
String value =(String)
it.next();
System.out.println(value);
}
E. java的HashTable问题
这句numbers.put(new Mykey("wanghui",20),new Integer(2));
之前这么写Mykey wanghui = new Mykey("wanghui",20);
然后
numbers.put(wanghui,new Integer(2));
最后
System.out.println(numbers.get(wanghui));
就对了
你的问题出在,new产生了两个不同的wanghui对象,你看起来虽然它们属性一样,但实际的地址却不一样,是两个拥有同样内容的不同对象,因为你用了new嘛,所以你第二次用系统输出的时候传入的那个并非你之前的那个对象.所以会找不到.
F. 问下java里Hashtable的用法
Hashtable<String,A> hb = new Hashtable();
A instA = new A();
String key = new String(instA.a & instA.b);
hb.put(key,instA);
G. java中的Hashtable怎么用,请详细举例子说明,拜托了 谢谢
就是哈希表,下面这个示例创建了一个数字的哈希表。它将数字的名称用作键回: 答Hashtable<String, Integer> numbers = new Hashtable<String, Integer>();
numbers.put("one", 1);
numbers.put("two", 2);
numbers.put("three", 3);
要获取一个数字,可以使用以下代码:
Integer n = numbers.get("two");
if (n != null) {
System.out.println("two = " + n);
}
H. Java如何把包含Hashtable的类写入文件,在那个类中,hashtable为静态成员
- -
OutputStream out=new FileOutputStream(file);
ObjectOutputStream oos=new ObjectOutputStream(out);
oos.writeObject(hashtableObj);
oos.flush();
oos.close();
I. JAVA中如何把两个HASHTABLE的内容加到一起
a.putAll(b)
放不放在前面,应该都没用。
本来取的时候,就不是按顺序的。
b.addAll(a);
下面使用的时候用b就行了
那就再 a=b;
为什么一定要B.clear
不需要。
要多根据错误找问题
应该是不能b.clear的。。这样a也被清空了。
你的要求比较奇怪。。为什么非要用b做为载体呢。。直接在a前面一个一个元素加不好么。。。
也可以不使用vector,用arraylist
a.addAll(0,b);就可以了。多查查API
J. Java 里的Hashtable 的映射是有序的吗
如果说有序,只是散列的顺序,不是顺序排列。
在输出时只会按散列的顺序。
散列表是不要求顺序操作的。
如果需要顺序,请直接用或转换成列表List