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_]
Java集合框架面试题
最新推荐文章于 2024-05-12 02:27:48 发布