一、请说说ArrayList、Vector和LinkedList的区别
这三者都是单列集合Collection下List集合的实现类,所以他们的共同点,元素有序,允许重复元素
不同点:
ArrayList和Vector底层都是数组实现,这样的实现注定查找快、增删慢
ArrayList和Vector的区别在于线程安全问题,Vector支持线程同步,是线程访问安全的,而ArrayList线程不安全
LinkedList底层是链表结构,查找元素慢、增删元素速度快,线程不安全。
二、请说说HashSet原理,并写程序证明
HashSet在存元素时,会调用对象的hashCode方法计算出存储位置,然后和该位置上所有的元素进行equals比较,
如果该位置没有其他元素或者比较的结果都为false就存进去,否则就不存。
这样的原理注定了元素是按照哈希值来找存储位置,所有无序,而且可以保证无重复元素
我们在往HashSet集合存储元素时,对象应该正确重写Object类的hashCode和equals方法
正因为这样的原理,HashSet集合是非常高效的。
比如,要查找集合中是否包含某个对象,首先计算对象的hashCode,折算出位置号,到该位置上去找就可以了,而不用和所有的元素都比较一遍
三、Collection和Collections的区别
两者没有任何关系
Collection是单列集合的父接口,JDK1.5中定义了Iterable接口作为Collection父类,为了实现增强for循环
Collections是工具类,提供了关于集合的常用操作,例如,排序、二分法查找、反转元素等
分享到:
相关推荐
### Java经典面试题知识点 #### Java数据结构容器 - **核心知识点**:Java集合框架,包括List、Set、Map等接口及其实现类。List接口代表有序的集合,例如ArrayList和LinkedList;Set接口代表不允许重复元素的集合,...
本文总结了Java中级面试题,涵盖了集合、HashMap、HashSet、HashTable、ConcurrentHashMap、红黑树、Java 8对HashMap的优化、LinkedHashMap、TreeMap、IdentityHashMap等知识点。 集合 * List和Set都是继承自...
Java 面试题、Java 框架面试题 Java 面试题是 Java 开发人员面试的必备知识,涵盖了 Java 基础知识、Java 框架、Java 集合框架、Java 多线程、Java 网络编程等方面的知识点。在本文中,我们将对 Java 面试题进行...
集合框架:熟悉Java集合框架中的List、Set、Map等接口及其实现类,如ArrayList、HashSet、HashMap等。 泛型:理解泛型的概念及其在Java中的应用,如泛型类和泛型方法。 并发编程:了解Java中的线程、同步、锁等机制...
"2017java面试题"这个压缩包文件提供了丰富的资源,帮助Java开发者准备面试,深化对Java开发的理解。 文档"Java面试宝典2017.doc"可能包含了以下核心Java知识点: 1. **基础语法**:这包括变量、数据类型、运算符...
本资料“【电子版】Java校招面试题库(附答案与解析)java篇.zip”提供了一套完整的Java面试题集,帮助应聘者更好地准备面试。 1. **Java基础知识** - 类与对象:理解面向对象编程的基本概念,如封装、继承、多态...
在Java综合面试中,面试官通常会考察应聘者的语法基础、面向对象编程理解、内存管理、多线程、集合框架、IO流、网络编程、异常处理、JVM原理、设计模式以及数据库操作等多方面技能。以下是对这些知识点的详细说明: ...
在2020年,Java依然在企业级应用、云计算、大数据、Android开发等领域占据主导地位,因此Java面试题的汇总对于求职者来说至关重要。这份"2020 Java经典面试题总汇"很可能包含了各种难度层次的问题,旨在测试候选人在...
3. **集合框架**:Java集合框架包括List、Set、Queue、Map等接口及其实现类,如ArrayList、LinkedList、HashSet、HashMap等。面试时可能会涉及它们的区别、使用场景以及性能分析。 4. **多线程**:Java提供强大的多...
"Java面试题及答案详解" Java是目前最流行的编程语言之一,在软件开发行业中广泛应用。以下是Java面试题及答案的详解: Java基础 1. JDK 和 JRE 的区别是什么? JDK(Java Development Kit)是Java开发工具包,...
Java作为一门广泛使用的编程语言,其面试题涵盖了基础语法、面向对象、集合框架、多线程、异常处理、IO流、网络编程、JVM优化、设计模式等多个领域。以下是一些基于标题和描述中提到的Java经典面试题及对应的知识点...
本文将基于标题“Java面试题和练习题”以及描述中提到的内容,深入探讨Java相关的面试题和练习题,旨在帮助求职者或希望提升技能的开发者巩固知识,准备面试。 一、Java基础 1. Java的数据类型:了解Java的八种...
这份"java面试题总结资料"涵盖了多个Java核心领域的关键知识点,包括但不限于: 1. **基础语法**:理解基本的数据类型(如整型、浮点型、字符型和布尔型),变量的声明与使用,以及运算符的优先级。同时,要熟悉...
### 2024年Java基础面试题及解析 #### 1. 什么是 Java? **答案解析:** Java 是一种广泛使用的高级编程语言,由 Sun Microsystems 在 1995 年开发并发布。它的主要特点包括面向对象、平台独立性、安全性、可移植...
3. **集合框架**:Java集合框架包括List、Set、Map接口及其实现类,如ArrayList、LinkedList、HashSet、HashMap等,理解它们的特点和使用场景。 4. **IO与NIO**:熟悉输入输出流体系,包括字节流、字符流、缓冲流、...
Java工程师的面试通常涵盖广泛的领域,包括基础知识、编程能力、并发处理、内存管理、设计模式、框架应用等。以下是一些可能出现在Java面试中的关键知识点: 1. **Java基础**:面试通常会从Java的基础语法开始,如...
【交通银行Java专业面试题解析】 在准备交通银行的Java专业面试时,了解常见的Java编程概念和技术至关重要。交通银行作为一家国际知名的金融机构,其技术面试通常会涵盖Java的基础知识、面向对象编程、并发处理、...
在准备Java面试时,了解和掌握一系列核心知识点是至关重要的。以下是一些基于标题和描述中的关键...阅读提供的PDF资料,如"Java并发编程面试题八股文.pdf"和"Spring面试题八股文.pdf",将有助于巩固和扩展这些知识。
"2021年Java大厂面试题整理大全"是一个集合了众多Java专业面试问题的资源,旨在帮助求职者准备Java相关的职位面试。这个压缩包可能包含了大量的面试题目、解答以及一些关键知识点的总结,涵盖从基础到高级的各个方面...
Java程序员在面试中可能会遇到各种各样的问题,涵盖了语言基础、数据结构、并发编程等多个方面。下面我们将深入探讨这些知识点。 首先,对于Java语法规范,这是每个Java开发者的基础。这包括但不限于变量声明、数据...