Java集合框架面试题

1.(集合框架)下面都属于线程安全的类是(BD )。 
线程同步就是线程安全的 
A.ArrayList//不同步 
B.Vector//同步,其余功能与ArrayList一样 
C.HashMap//不同步 
D.HashtableA.//同步,其余功能和Hashtable一样 
2.(集合框架)ArrayList的初始化内容如下: 
ArrayList list = new ArrayList(); 
list.add("java"); 
list.add("aaa"); 
list.add("java"); 
list.add("java"); 
list.add("bbb"); 
下面可以删除list中所有的“java”的代码是:(A) 
A.for (int i = list.size() - 1; i >= 0; i--) {//规定是逆序删除,每删除一个,会重新排序 
if ("java".equals(list.get(i))) { 
list.remove(i); 


B.for (int i = 0; i < list.size(); i++) { 
if ("java".equals(list.get(i))) { 
list.remove(i); 


C.list.remove("java"); //只能删除第一个 
D.list.removeAll("java");//括号中的参数是集合的类型 
3.下面的代码用于输出字符数组ch中每个字符出现的次数,应该填入的代码是(D) 
public static void main(String[] args) { 
char[] ch = { 'a', 'c', 'a', 'b', 'c', 'b' }; 
HashMap map = new HashMap(); 
for (int i = 0; i < ch.length; i++) { 
< 填入代码 > 

System.out.println(map); 

//map中没有contains方法,这个方法只有List和Set中有 
A.if (map.contains(ch[i])) { 
map.put(ch[i], map.get(ch[i]) + 1); 
} else { 
map.put(ch[i], 1); 

B.if (map.contains(ch[i])) { 
map.put(ch[i], (Integer) map.get(ch[i]) + 1); 
} else { 
map.put(ch[i], 1); 

C.if (map.containsKey(ch[i])) { 
map.put(ch[i], (int) map.get(ch[i]) + 1); 
} else { 
map.put(ch[i], 1); 

D.if (map.containsKey(ch[i])) { 
map.put(ch[i], (Integer) map.get(ch[i]) + 1); 
} else { 
map.put(ch[i], 1); 

4.(集合框架) 题示代码的功能为:对于一个存放Integer对象的ArrayList,内容为:{1,2,3 },对其进行循环遍历: 
List list=new ArrayList(); 
list.add(1); 
list.add(2); 
list.add(3); 
for(int i=0;i<《插入代码1》;i++){ 
Integer obj=(Integer)《插入代码2》; 
System.out.println(obj); 

那么《插入代码1》和《插入代码2》处的代码分别为(C) 
A. list.getObject(i) list.length() 
B. list.length() list.getObject(i) //集合没有length,只要数组才有,集合是size() 
C. list.size() list.get(i) 
D. list.get(i) list.size() 
5.题示代码的功能为:对于一个存放Person对象的ArrayList进行循环遍历,并取到每个Person对象的idCard和userName。 
public class Person{ 
private Long idCard; 
pirvate String userName; 
//一下是getter和setter方法 
…… 

List<Person> list=new ArrayList<Person>(); 
Person p1=new Person(); 
p1.setIdCard(new Long(1001)); 
p1.setUserName(“terry”); 
Person p2=new Person(); 
p2.setIdCard(new Long(1002)); 
p2.setUserName(“tom”); 
list.add(p1); 
list.add(p2); 
for(《插入代码》){ 
System.out.println(person.getIdCard()+”:”+person.getUserName()); 

那么《插入代码》处的代码为(D) 
A. List list:person 
B. List list:Person //遍历list中的Person 
C. Person person:List 
D. Person person:list//在list中遍历person 
6.已知类Foo的定义如下: 
public class Foo { 
int value; 
Foo(int value) { 
this.value = value; 

public boolean equals(Object obj) { 
if (obj instanceof Foo) { 
Foo foo = (Foo) obj; 
return value == foo.value; 
} else { 
return false; 


运行下面程序段: 
ArrayList list = new ArrayList(); 
HashSet set = new HashSet(); 
list.add(new Foo(1)); 
set.add(new Foo(1)); 
System.out.println(《插入代码》); 
如果控制台输出的结果是true,false,那么《插入代码》处应填入的代码是(C) 
A. list.contains(new Foo(1)) + ","+ set.contains(new Foo(1)) 
B. set.contains(new Foo(1)) + ","+ list.contains(new Foo(1)) 
C. new Foo(1).equals (new Foo(1)) + ","+ list.contains(new Foo(1)) 
D. new Foo(1).equals (new Foo(1)) + ","+ set.contains(new Foo(1))//没有重写hashCode()方法 
7.(集合框架)题目代码的功能是:采用Iterator进行循环遍历到集合中的每一个元素,并将其移除,《插入代码》处应填入的代码是(A) 
ArrayList list = new ArrayList(); 
list.add("java"); 
list.add("php"); 
list.add(".net"); 
《插入代码》 
A. Iterator it=list.iterator(); 
while(it.hasNext()){ 
it.next(); 
it.remove(); 

B. Iterator it=list.iterator(); 
while(it.hasNext()){ 
it.remove(); 

C. Iterator it=list.iterator(); 
while(it. hasNext()){ 
Object obj=it.next(); 
list.remove(obj); 

D. Iterator it=list.iterator(); 
while(it.hasNext()){ 
list.remove(); 

8.题示代码的功能为:循环遍历输出Map当中的每一个元素 
Map<String,Integer> map=new HashMap<String,Integer>(); 
map.put(“jessica”,100); 
map.put(“tom”,200); 
map.put(“den”,300); 
Set《插入代码1》 set =《插入代码2》;(D) 
for (《插入代码3》 per : set) { 
System.out.println(per.getKey() + ":" + per.getValue()); 

A. 
<Entry> 
map.keySet() 
Entry 
B. 
<Entry> 
map.entrySet() 
Entry 
C. 
<Map.Entry<String, Integer>> 
map.keySet() 
Map.Entry<String, Integer> 
D. 
<Map.Entry<String, Integer>> 
map.entrySet() 
Map.Entry<String, Integer> 
9.请看一下代码:(A) 
Map<String,Double> map=new HashMap<String,Double>(); 
map.put(“tom”,123.6); 
map.put(“jim”,234.5); 
map.put(“terry”,45.3); 
《插入代码》 
《插入代码》处要实现的功能是把key为“jim”的value值在原有数字的基础上添加100 
A. map.put(“jim”,map.get(“jim”)+100); 
B. map.set(“jim”,map.get(“jim”)+100); 
C. map.put(“jim”,234.5); 
D. map.set(“jim”,234.5); 
10.下列代码的运行结果是(“_”表示空白): (B) 
public class Base{ 
private void test() { 
String aStr = "_One_"; 
String bStr = aStr;//改变时候创建了新的对象,所以以前的没变化 
bStr =aStr.trim(); 
System.out.println("[" + aStr + "," + bStr + "]"); 

static public void main(String[] a) { 
new Base().test(); 


A. [One,_One_] 
B. [_One_,One] 
C. [One,One] 
D. [_One_,_One_] 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值