Java中的集合 在Java中,Collection是一个框架,提供了用于存储和操作对象组的体系结构。“集合框架”已在JDK 1.2中定义,并且其中包含所有集合类和接口。Java Collection类的两个主要接口是Collection接口(java.util.Collection)和Map接口(java.util.Map)。Java Collections可以对数据执行所有操作,例如搜索,排序,插入,操作等。Java Collection Framework提供了诸如Set,List,Queue,Deque之类的接口,以及诸如ArrayList,Vector,LinkedList,HashSet,PriorityQueue,TreeSet和LinkedHashSet之类的类。
例如,要在Vector中添加元素,我们要使用addElement()函数,而要在Hashtable中添加元素,我们要使用put()函数。
由于Java是一种广泛使用的编程语言,因此许多大小型组织都在使用Java作为其产品的基础。因此,准备一些基本的和高级的Java问题以应对面试。
在这里,让我们看一下有关Java的最常见问题。
新生应试的一些常见问题 问题1: Java中的框架是什么?
答: 框架是一组类和接口,它们提供了现成的体系结构。最佳的面向对象设计始终包括带有类集合的框架,以使所有类都执行相同类型的任务。
问题2:使用Java定义集合框架。
答: Java Collections Framework是接口和类的集合,这些接口和类有助于有效地存储和处理数据。Java Collection Framework提供了诸如Set,List,Queue,Deque之类的接口,以及诸如ArrayList,Vector,LinkedList,HashSet,PriorityQueue,TreeSet和LinkedHashSet之类的类。
问题3:在Java集合框架中区分ArrayList和Vector。
回答:
数组列表
已同步。
问题4:区分迭代器和枚举。
迭代器
枚举
问题5: LinkedList和ArrayList有什么区别?
链表
问题6: 解释Queue接口的poll()和remove()方法之间的区别。
答: 这两种方法返回并删除队列的开头。仅当队列为空时,它们的行为有所不同。remove()引发异常,而poll()对于空队列返回null。
问题7: 区分可比和比较器。
可比
实际的班级已更改。 比较器
它提供了compare()一种对元素进行排序的方法。
问题8: 就计算机内存而言,什么是堆栈?
答:堆栈是计算机内存的一个特殊区域,用于存储由函数创建的临时变量。在堆栈中,在运行时声明,存储和初始化变量。
问题9: 列出地图界面的集合视图。
集合视图方法允许通过以下三种方式将地图视为集合:
问题10: 定义EnumSet。
答: 这是一个Set实现,可以与枚举类型一起使用。所有元素都必须来自显式或隐式指定的一种枚举类型。它不同步。不允许使用NULL键。
问题11: 使集合具有线程安全性的方法有哪些?
答: 方法是:
问题12: 区分队列和双端队列。
队列
双端队列
也称为双端队列。
问题13:区分hashmap和hashtable。
Hashmap
Hashtable
问题14: 定义迭代器。
答: 该Iterator()是提供了一些方法来遍历集合的接口。它提供了一种使用集合的元素进行遍历并实现迭代器设计模式的通用方法。
问题15: 什么是可导航地图?
答: NavigableMap接口是Java Collection Framework的成员,属于java.util包。它是SortedMap的子接口,可提供便捷的导航方法,例如LowerKey,floorKey,ceilingKey和HigherKey。它还有助于从现有地图创建子地图。
问题16: 什么是peek()队列接口?
答: Peek()返回队列的开头。它不会删除任何元素。当队列为空时,它返回null。
经验丰富的程序员的一些常见面试问题 问题1:什么是CopyOnWriteArrayList?
答: 此类位于java.util.concurrent包中,并且实现列表接口。它制作了基础ArrayList的克隆副本,以实现所有操作和修改。它是故障安全的,并且在迭代过程中永远不会抛出ConcurrentModificationException。
问题2: 什么时候发生ConcurrentModificationException?
答: java。实用程序。ConcurrentModificationException在数据收集被积极使用时试图对其进行修改时发生,例如当我们迭代的内容被修改时。
问题3: 为什么ConcurrentHashmap比Hash表或同步映射更好?
答: ConcurrentHashMap可以在并发多线程环境中安全使用。它的性能比问题中提到的两个要好,因为ConcurrentHashMap的只有一部分被锁定了,这与Hashtable和SynchronizedMap不同,后者的全部都被锁定了。
问题4:向钻石操作员解释。
答: Diamond运算符可帮助编译器收集通用类的类型参数。在Java SE中,开发人员可以将参数化的构造函数替换为空的参数集(<>),称为菱形运算符。
问题5: 在定制类中使用自定义对象作为键时需要做什么?
答: 如果将Map中的任何自定义对象用作键,则需要重写equals()和hashCode()方法。另一方面,如果要将自定义对象存储在已排序的Collection中,则还需要确保您的equals()方法与compareTo()method一致。
问题6: 说明迭代器与集合。
答: 迭代器只能使用来移动和访问下一个元素,next()或使用来删除一个元素remove()。收集,但是,可以添加的元素,迭代,取下一个元素,并使用清除整个结构add(),iterator(),remove(),和clear()分别。也有一些布尔方法。迭代器比集合更快,因为与它关联的操作更少。
问题7: 使用HashSet的某些功能。
答: HashSet实现Set接口。基础数据结构是哈希表。允许使用null元素,不允许使用重复元素。根据对象的哈希码插入对象。
问题8: 解释故障快速和故障安全之间的区别。
快速失败
可以抛出ConcurrentModificationException。 故障安全
使用原始集合的副本进行遍历。
问题9: 区分ArrayBlockingQueue和LinkedBlockingQueue。
ArrayBlockingQueue
使用单锁双重条件算法。 LinkedBlockingQueue
基于链接的节点的有界绑定队列(可选)。
问题10: TreeMap如何在Java中工作?您希望使用哪种数据结构:HashMap或TreeMap?
答: TreeMap是基于Red-Black树的NavigableMap实现。它使用Red-Black树算法对TreeMap对象键进行排序。我们根据我们的要求进行选择。TreeMap被排序,而HashMap则更快。因此,如果我们希望元素排序,则使用TreeMap,否则使用HashMap。
原文链接:codingdict.com