先决条件: Java集合框架。
1. What is the Output of following Java Program?
import java.util.*;
class Demo {
public static void main(String[] args)
{
ArrayList arr = new ArrayList();
arr.add(11);
arr.add(2);
arr.add(3);
arr.add(5);
arr.add(7);
arr.remove(new Integer(7));
arr.remove(2);
for (int i = 0; i < arr.size(); i++)
System.out.print(arr.get(i) + " ");
}
}
A.编译错误。
B. 11 3 5
C. 11 2 5
Answer: C.
说明: ArrayList.remove() 方法采用索引或 Integer 类对象。这里它获取索引并删除该索引处的元素。因此,当我们使用new Integer(7) 时,它会从 ArrayList 中删除值 7。
2. What is the Output of following Java Program?
import java.util.*;
class Demo {
public static void main(String[] args)
{
Deque dq = new LinkedList();
dq.offerFirst(1);
dq.offerFirst(2);
dq.offerFirst(3);
dq.offerLast(4);
Queue q = new LinkedList();
Iterator it = dq.descendingIterator();
while (it.hasNext()) {
System.out.print(it.next() + " ");
}
}
}
A. 1 2 3 4
B. 4 1 2 3
C. 4 3 2 1
Answer: B.
说明: Deque 是一个双端队列,可以从两端插入和删除数据。当我们使用descendingIterator() 时,我们实际上是按照存储数据的相反顺序获取输出。
3. What is the Output of following Java Program?
import java.util.*;
class Demo {
public static void main(String[] args)
{
Set h1
= new TreeSet(
Collections.reverseOrder());
h1.addAll(
Arrays.asList(
new Integer[] { 1, 2, 3,
3, 5, 6,
7, 1, 4 }));
for (int h : h1)
System.out.print(h + " ");
}
}
A. 1 2 3 3 5 6 7 1 4
B. 3 2 1 7 6 4 5
C. 7 6 5 4 3 2 1
D. 1 2 3 4 5 6 7
Answer: C.
说明: Set 不存储重复值。 TreeSet 按排序顺序存储数据,即升序,但这里我们使用了 Collections.reverseOrder() 使其显式按降序存储数据。
4. What is the Output of following Java Program?
import java.util.*;
class Demo {
public static void main(String[] args)
{
Set h1 = new LinkedHashSet();
Stack s1 = new Stack();
for (int i = 0; i < 6; i++)
h1.add(i);
for (int h : h1) {
s1.push(h);
}
while (!s1.isEmpty()) {
System.out.print(s1.pop() + " ");
}
}
}
A. 3 4 1 2 5 0
B. 5 4 3 2 1 0
C. 1 2 3 4 5 0
D. 3 1 2 5 0 4
Answer: B.
说明: LinkedHashSet 不存储任何重复值,而是按原始插入顺序存储数据。此外,堆栈是一种 LIFO 数据结构。因此,堆栈中最近插入的值被弹出。
5. What is the Output of following Java Program?
import java.util.*;
class Demo {
public static void main(String[] args)
{
LinkedHashMap hm
= new LinkedHashMap();
hm.put("John", 1);
hm.put("Ron", 2);
hm.put("George", 3);
hm.put("Ray", 4);
for (Map.Entry e : hm.entrySet())
System.out.println(
e.getKey() + " "
+ e.getValue());
}
}
一种。
Ray 4
George 3
John 1
Ron 2
B.
John 1
Ron 2
George 3
Ray 4
C。
Ray 4
George 3
Ron 2
John 1
Answer: B.
说明: LinkedHashMap 按照插入顺序存储数据。
6. What is the Output of following Java Program?
import java.util.*;
class Demo {
public static void main(String[] args)
{
HashMap hm
= new HashMap();
hm.put("Karan", 1);
hm.put("Deepak", 2);
hm.put("Aman", 3);
hm.put("Ayan", 4);
TreeMap hm1
= new TreeMap();
hm1.putAll(hm);
for (Map.Entry
entry : hm1.entrySet())
System.out.println(
entry.getKey()
+ " " + entry.getValue());
}
}
一种。
Karan 1
Ayan 4
Deepak 2
Aman 3
B.
Karan 1
Deepak 2
Aman 3
Ayan 4
C。
Karan 1
Deepak 2
Ayan 4
Aman 3
D.
Aman 3
Ayan 4
Deepak 2
Karan 1
Answer: D.
说明: TreeMap 按照键值的排序顺序存储数据。
7. What is the Output of following Java Program?
import java.util.*;
class Demo {
public static void main(String[] args)
{
Stack s1 = new Stack();
Queue q = new LinkedList();
for (int i = 0; i < 5; i++)
s1.push(i);
while (s1.isEmpty())
q.add(s1.pop());
System.out.print(q.peek());
}
}
A. 4
B. 0
C.编译错误
D.空
Answer: D.
说明:由于队列中没有放置任何值,while 循环的条件为假。
8. What is the Output of following Java Program?
import java.util.*;
class Demo {
public static void main(String[] args)
{
HashSet h1 = new HashSet();
h1.addAll(
Arrays.asList(
new Integer[] { 1, 2, 2,
3, 6, 4,
4, 0, 7, 5 }));
h1.remove(1);
h1.remove(2);
h1.remove(4);
for (int h : h1)
System.out.print(h + " ");
}
}
A. 1 3 4 4 0 7 5
B. 2 3 6 4 0 7 5
C. 0 3 5 6 7
D. 5 6 3 2 0 7 4
Answer: C.
说明: HashSet 不包含任何重复值。所以 2 和 4 只存储一次。当 remove函数被调用时,它会删除作为参数传递给函数。
9. What is the Output of following Java Program?
import java.util.*;
class Demo {
public static void main(String[] args)
{
TreeSet ts
= new TreeSet();
ts.add(101);
ts.add(76);
ts.add(89);
ts.add(7);
System.out.print(ts.first() + " ");
ts.remove(7);
System.out.print(ts.last() + " ");
System.out.print(ts.first() + " ");
}
}
A. 101 89 101
B. 7 76 101
C. 7 101 76
Answer: C.
说明: TreeSet 以 Sorted 顺序(升序)存储值。此外, TreeSet.first() 返回最小值, TreeSet.last() 返回集合中存在的最大值。
10. What is the Output of following Java Program?
import java.util.*;
class Demo {
public static void main(String[] args)
{
Deque dq
= new LinkedList();
Stack s1
= new Stack();
dq.addFirst(10);
dq.addFirst(20);
dq.addLast(30);
dq.addFirst(40);
while (!dq.isEmpty())
s1.push(dq.poll());
while (!s1.isEmpty())
System.out.print(s1.pop() + " ");
}
}
A. 30 10 20 40
B. 40 30 20 10
C.编译错误。
D. 40 20 10 30
Answer: C.
说明:由于 Deque 是一个接口,所以可以借助 LinkedList 类进行实例化。
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。