在Java中,关于HashMap类的描述,以下错误的是()。
第1题:
HashMap与HashTable的区别
第2题:
阅读以下说明和Java代码,将应填人 (n) 处的字句写在答题纸的对应栏内。
【说明】
Java.util包中提供了HashMap模板类,该模板类可以表示多个“键一值”对的集合,其中“键”的作用与普通数组中的索引相当,而“值”用作待存储和检索的数据。HashMap实现了Map接口。在Map接口中定义了put和get方法,put方法表示Map对象中加入一个“键-值”对,get方法则通过“键”来获取其对应的“值”。
下面的Java代码中使用了HashMap模板类,将编号为1001、1002、1003的员工信息插入到HashMap对象中,然后输入一个指定的员工编号,通过员工编号来获取员工的基本信息。员工编号为整型编码,而员工的基本信息定义为类employee。HashMap对象与员工对象之间的关系及存储结构如图5—2所示。
【Java代码】
import Java.util.*;
class employee{
employee(String name,String phoneNumber,String address){
this.name=name;
thi s.phoneNumber=phoneNumber ;
this.address=address;
}
String name;
String phoneNumber;
String address;
};
publ ic class jaVaMain{
public static void main(String[]args){
MapemployeeMap=new HashMap(Integer,employee>();
for(Integer employIndex=1001;employIndex<=1003;employIndex++){
String tmp=employlndex. (1 ) ();
employeeMap. (2) (employIndex, (3) (”employee-”+
tmp,“85523927-”
+tmp,”addresS-”
+tmp)
);//将员工编号和员工信息插入到employeeMap对
象中
)
int employeeNo=0;
System.out.print(”请输入员工编号:”);
Scanner S=new Scanner(System.in);
employeeNo=.s.nextInt(); //从标准输入获得员工编号
employee result=employeeMap. (4)(employeeNo);
if( (5) ==null)(
System.out.println(”该员工编号不存在!”);
return;
System.out.println(“你所查询的员工编号为:”+employeeNo);
System.out.printld(“该员工姓名:”+result.name);
System.out.println(“该员工电话:”+result.phoneNumber);
System.out.println(“该员工地址:“+result.address);
}
}
第3题:
A.都属于Map接口的类
B.Hashtable类不是同步的,HashMap类是同步的
C.Hashtable类不允许null键和null值
D.HashMap类允许null键和null值
第4题:
HashMap和Hashtable正确的说法有()
第5题:
简述HashMap和Hashtable的区别。
第6题:
Hashtable的原理,并说出HashMap与Hashtable的区别
HashTable的原理:通过节点的关键码确定节点的存储位置,即给定节点的关键码k,通过一定的函数关系H(散列函数),得到函数值H(k),将此值解释为该节点的存储地址.
HashMap 与Hashtable很相似,但HashMap 是非同步(unsynchronizded)和可以以null为关键码的.
第7题:
A.Hashtable的KV都不可以为null
B.HashMap的KV都可以为null
C.HashMap的K不可以为null,V可以为null
D.ConcurrentHashMap的KV都不可以为null
第8题:
Hashtable和HashMap有什么区别?
a.Hashtable是继承自陈旧的Dictionary类的,HashMap继承自AbstractMap类同时是Java 1.2引进的Map接口的一个实现。
b.也许最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。这就意味着,
虽然你可以不用采取任何特殊的行为就可以在一个 多线程的应用程序中用一个Hashtable,
但你必须同样地为一个HashMap提供外同步。一个方便的方法就是利用Collections类的静态的synchronizedMap()方法,
它创建一个线程安全的Map对象,并把它作为一个封装的对象来返回。这个对象的方法可以让你同步访问潜在的HashMap。
这么做的结果就是当你不需要同步时,你不能切断Hashtable中的同步(比如在一个单线程的应用程序中),
而且同步增加了很多处理费用。
c.第三点不同是,只有HashMap可以让你将空值作为一个表的条目的key或value。
HashMap中只有一条记录可以是一个空的key,但任意数量的条目可以是空的value。
这就是说,如果在表中没有发现搜索键,或者如果发现了搜索键,但它是一个空的值,那么get()将返回null。
如果有必要,用containKey()方法来区别这两种情况。
d.HashMap去掉了Hashtable的contains方法,保留了containsValue和containsKey方法
e.Hashtable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数
第9题:
如果HashMap发生大量Hash冲突,则会导致()
第10题:
下列哪些说法是正确的?()