集合相关
1、基本概述
Java.util包提供了一些集合类,这些集合类又被成为容器。集合和数组的区别在于集合的长度是可变的,数组的长度固定;集合用来存放对象的引用。常用集合有List、Set、Map,集合类继承关系如图1,java提供了相应的方法来对集合进行遍历、增删改查。
图1
2、主要操作
(1)Collection接口(Collections是工具类用于操作集合类):
Collection接口是层次结构中的根接口,通常不能直接使用。由于List和Set集合继承了Collection接口,因此Collection提供的方法对其是通用的。Collection常见方法如图2所示。
遍历集合一般有3种方法:
第一种---使用迭代器(Iterator),该方式在执行循环过程中会进行数据锁定,性能稍差。在遍历过程中删除元素只能用迭代器的remove方法而不能用集合的remove方法,否则会出现并发访问的错误。Iterator的next()方法返回的是Object,注意强制转换。
第二种--增强型for循环,内部实现也是用的迭代器。
第三种--普通的for循环,内部不锁定,效率高,多线程时要考虑并发问题。
(2)List集合
List集合包括List接口及其实现类。List集合中的元素允许重复且有序。List接口除了包含Collection中的方法外,List接口还定义了2个非常重要的方法:
get(int index):获取指定索引位置的元素.
set(int index,Object obj):将集合中指定索引位置的对象修改为指定的对象。
List接口的常用实现类有ArrayList和LinkedList.
ArrayList类实现了可变的数组,允许保存所有元素,包括null。可根据索引位置对集合进行快速访问,缺点是向指定索引位置插入或删除对象的速度较慢。线程不同步
LinkedList类采用链表结构保存对象,保存所有元素。这种结构的优点是便于向集合中插入和删除对象,但随机访问集合中的对象效率比ArrayList低。(集合为空表示没有元素,为null表示对象不存在)
Vector:(JDK1.0版本出现的) 底层是数组数据结构,线程同步,被ArrayList替代了.(已经不用了)
3)Set集合
Set集合包括Set接口及其实现类。Set集合不可重复且无序。常用的实现类有HashSet和TreeSet。
HashSet实现了Set接口由哈希表支持,允许使用null元素。
TreeSet不仅实现了Set还实现了java.util.SortedSet接口。因此TreeSet按照自然顺序递增排序,当然也可以按照指定的比较器排序。
(4)Map集合
Map集合以键值对的形式存储数据,不能包含相同的Key,每个Key只能映射一个Value。
遍历map集合的三种方法:
通过Map.entrySet遍历key和value;
通过Map.keySet遍历key;
通过Map.values遍历value
集合有序重复见图3:
相关推荐
这份"面试必备(java方面的面试集合)"包含了一系列与Java相关的面试题目,旨在帮助求职者准备即将到来的技术面试。以下是对这些知识点的详细解释: 1. **Java基础**: - **数据类型**:Java有两类数据类型,基本...
ArrayList 和 LinkedList 是 Java 中两个常用的集合类。ArrayList 是基于数组实现的,LinkedList 是基于双链表实现的。ArrayList 的随机访问集合元素时性能较好,因为可以直接返回数组中 index 位置的元素。...
这份PDF文件包含了122道精心挑选的Java面试题目,旨在全面覆盖Java编程语言的核心概念、框架、设计模式以及最佳实践。以下是对这份宝典中可能涵盖的知识点的详细解析: 1. **Java基础**:这部分可能会涉及Java的...
│ Java面试题67:数据库优化之数据库表设计遵循范式.mp4 │ Java面试题68:选择合适的数据库引擎.mp4 │ Java面试题69:选择合适的索引.mp4 │ Java面试题70:使用索引的一些技巧.mp4 │ Java面试题71:数据库优化...
面试中,Java基础部分会涵盖这些知识点,例如类、对象、接口、包的概念,以及控制流、异常处理、集合框架等。Redis是一种内存数据结构存储系统,常用于缓存和消息队列,面试中可能会讨论其数据类型、持久化和主从...
Java面试必备必知必会,这是每个Java开发者在求职或者职业发展中都需要面对的主题。Java面试通常涵盖以下几个核心领域:Java基础、集合框架、多线程并发以及虚拟机(JVM)知识。以下将对这些关键知识点进行详细阐述...
Java编程语言作为软件开发领域的主流语言之一,其面试题库涵盖了广泛的领域,包括基础语法、面向对象编程、集合框架、多线程、网络编程、异常处理、IO流、设计模式等。以下是一些核心知识点的详细说明: 1. **基础...
3. **Java面试重点** - 垃圾回收与内存管理:理解JVM内存模型,包括堆、栈、方法区、本地方法栈等,以及不同垃圾回收算法。 - 数据结构与算法:面试中常考,包括排序、查找算法,以及数据结构的选择和优化。 - ...
这份"【面试必备】JAVA 最常见面试题全解析 附 PDF"文档,正是为准备Java面试的开发者量身定制的资源,涵盖了Java的基础到高级知识点,旨在帮助你全面理解和掌握Java技术。 一、基础篇 1. Java语法:包括变量、数据...
Java面试必备文档涵盖了许多核心Java概念,以下是针对标题和描述中的关键知识点的详细说明: 1. **面向对象的特征** - **抽象**:抽象是将复杂问题简化,关注主要功能,忽略次要细节。在Java中,这通常通过接口和...
【Java程序员必备——比较全的Java面试题】 Java编程语言作为全球最受欢迎的开发语言之一,其面试题库广泛且深入,涵盖了基础语法、面向对象、集合框架、多线程、网络编程、I/O流、数据库操作、设计模式等多个方面...
Java面试宝典是Java程序员求职面试的重要参考资料,它涵盖了Java编程语言的核心概念、高级特性、设计模式、并发处理、框架应用、数据库交互等多个方面。以下将详细解析这些关键知识点: 1. **Java基础**:面试中,...
Java面试笔记 225道Java面试题JAVA面试基础知识点总结Java数据结构题 JAVA笔试面试WORD资料汇总(19个): 2014年最新Java笔试题及答案.docx 225道Java面试题 学会了Java面试随你问.docx Ant和Maven的作用是什么?两者...
Java面试必备宝典是针对Java开发者的一份重要学习资源,主要涵盖了2015届面试的常见问题和重点知识。这份资料集可以帮助求职者全面了解并掌握Java编程语言的关键概念和技术,以提升在面试中的竞争力。 一、Java基础...
Java面试宝典2017版是一份集大成的面试资源,专为准备Java相关职位面试的求职者量身打造。这份文档旨在帮助求职者系统性地复习和掌握Java编程语言的关键知识点,以应对各类面试挑战。以下将对这份资料中的主要知识点...
Java面试是每位求职者在寻找Java程序员或Java软件工程师职位时必须面对的挑战。为了确保在面试中表现出色,理解并掌握相关知识点至关重要。以下是一些核心的Java面试知识点,这些内容通常会在面试中出现,也是你需要...
这份名为“【Java面试资料】-1000道 互联网Java架构师面试题 面试必备神器”的压缩包,显然是一份针对Java架构师面试的全面学习资源。其中包含的PDF文档很可能是精心整理的面试问题集,旨在帮助准备Java架构师职位...
"Java面试必备208题.zip"这个压缩包文件提供了全面的面试准备资料,其中的"Java面试必备208题.pdf"涵盖了Java语言的各个方面,包括基础概念、面向对象、集合框架、多线程、IO流、网络编程、异常处理、JVM内存模型...
《JAVA面试宝典》是一本全面涵盖Java技术体系和求职面试知识的指南,旨在帮助Java开发者准备面试,提升技能。本书共分为十章,从基础知识到框架应用,再到项目实战和面试题解析,覆盖了Java开发者的必备技能。 第一...