Java 集合面试题

Java 集合面试题

1) 以下程序的输出是什么?

import java.util.*;
 
public class priorityQueue {
    public static void main(String[] args)
    {
        PriorityQueue<Integer> queue
            = new PriorityQueue<>();
        queue.add(11);
        queue.add(10);
        queue.add(22);
        queue.add(5);
        queue.add(12);
        queue.add(2);
 
        while (queue.isEmpty() == false)
            System.out.printf("%d ", queue.remove());
 
        System.out.println("\n");
    }
}
Java

a) 11 10 22 5 12 2
b) 2 12 5 22 10 11
c) 2 5 10 11 12 22
d) 22 12 11 10 5 2

答案:(c)

解释: 当remove()方法被调用时,优先级队列总是从队列中输出最小的元素,无论输入的序列是什么。

2) 以下程序的输出是什么

import java.util.*;
 
public class Treeset {
    public static void main(String[] args)
    {
        TreeSet<String> treeSet = new TreeSet<>();
 
        treeSet.add("Geeks");
        treeSet.add("For");
        treeSet.add("Geeks");
        treeSet.add("GeeksforGeeks");
 
        for (String temp : treeSet)
            System.out.printf(temp + " ");
 
        System.out.println("\n");
    }
}
Java

a) Geeks For Geeks GeeksforGeeks
b) Geeks For Geeks for Geeks
c) For Geeks GeeksforGeeks
d) For GeeksforGeeks Geeks

答案:(c)

解释: TreeSet按照升序对插入的数据进行排序。因此,输出的字符串包含所有按升序排列的字符串。TreeSet不包含任何重复的元素,因为它是一个集合。所以在输出中,只有一个字符串’Geeks’出现 。

3) 以下程序的输出是什么

import java.util.*;
 
public class linkedList {
    public static void main(String[] args)
    {
        List<String> list1 = new LinkedList<>();
        list1.add("Geeks");
        list1.add("For");
        list1.add("Geeks");
        list1.add("GFG");
        list1.add("GeeksforGeeks");
 
        List<String> list2 = new LinkedList<>();
        list2.add("Geeks");
 
        list1.removeAll(list2);
 
        for (String temp : list1)
            System.out.printf(temp + " ");
 
        System.out.println();
    }
}
Java

a) For Geeks GFG GeeksforGeeks
b) For GeeksforGeeks GFG
c) For GFG for
d) For GFG GeeksforGeeks

答案:(d)

解释: list1.removeAll(list2)函数从list1中删除list2中出现的所有字符串。这里,字符串’Geeks’出现在list2中,所以list1中所有包含’Geeks’数据的链接列表节点都被从list1中删除。

4) 给出的选项中,哪个是可能的输出

import java.util.*;
 
public class hashSet {
    public static void main(String[] args)
    {
        HashSet<String> hashSet = new HashSet<>();
        hashSet.add("Geeks");
        hashSet.add("For");
        hashSet.add("Geeks");
        hashSet.add("GeeksforGeeks");
 
        System.out.println(hashSet);
    }
}
Java

a) [Geeks, For, Geeks, GeeksforGeeks]
b) [GeeksforGeeks, Geeks, For]

答案:(b)

解释: HashSet是一个集合,由于一个集合不包含任何重复的元素,因此,字符串’Geeks’在输出中只出现一次。

5) 以下程序的输出是什么

import java.util.*;
 
public class stack {
    public static void main(String[] args)
    {
        List<String> list = new LinkedList<>();
        list.add("Geeks");
        list.add("For");
        list.add("Geeks");
        list.add("GeeksforGeeks");
        Iterator<Integer> iter = list.iterator();
 
        while (iter.hasNext())
            System.out.printf(iter.next() + " ");
 
        System.out.println();
    }
}
Java

a) Geeks for Geeks GeeksforGeeks
b) GeeksforGeeks Geeks for Geeks
c) Runtime Error
d) Compilation Error

答案:(d)

解释: 用于迭代Integer的迭代器不能用于迭代String数据类型。更正后的程序:https://ide.geeksforgeeks.org/DgeN0P

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册