热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

第十四篇:JAVA之集合框架

在JAVA中专门设计了一组类,他们实现了各种各样的数据存储,这种专门用来存储其他对象的类,被称为容器类,这组类和接口的设计结构也被称为集合框架(CollectionFramework)。JAVA集

在JAVA中专门设计了一组类,他们实现了各种各样的数据存储,这种专门用来存储其他对象的类,被称为容器类,这组类和接口的设计结构也被称为集合框架(Collection Framework)。 
JAVA集合主要分为三种类型。

  • Set(集):集合中的对象不按照特定顺序排序,不允许有重复对象。某些实现类可以对集合中对象按特定方式排序。
  • List(列表):集合中的对象按照索引位置排序,允许有重复对象。List和数组有些相似。
  • Map(映射):集合中每个元素包含一个键(Key)和一个值(Value),集合中的键不可以重复,值可以重复。

JAVA集合框架容器类关系图

Collection和Iterator接口

在Collection接口中声明了适应于JAVA集合(包括Set和List)的通用方法,JDK不提供接口的任何直接实现,而是通过其更具体的子类(Set和List)实现。

Collection方法摘要

返回值 方法名 说明
boolean add(E e) 确保此 collection 包含指定的元素(可选操作)
boolean addAll(Collection c) 将指定 collection 中的所有元素都添加到此 collection 中(可选操作)
void clear() 移除此 collection 中的所有元素(可选操作)
boolean contains(Object o) 如果此 collection 包含指定的元素,则返回 true
boolean containsAll(Collection c) 如果此 collection 包含指定 collection 中的所有元素,则返回 true
boolean equals(Object o) 比较此 collection 与指定对象是否相等
int hashCode() 返回此 collection 的哈希码值
boolean isEmpty() 如果此 collection 不包含元素,则返回 true
Iterator iterator() 返回在此 collection 的元素上进行迭代的迭代器
boolean remove(Object o) 从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)
boolean removeAll(Collection c) 移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)
boolean retainAll(Collection c) 仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)
int size() 返回此 collection 中的元素数
Object[] toArray() 返回包含此 collection 中所有元素的数组
T[] toArray(T[] a) 返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同

在Collection对象中并没有提供获取元素的方法。如果需要遍历Collection中的元素,一般采用Iterator遍历器。使用Iterator可以遍历集合中的各个对象元素。

Iterator方法摘要

返回值 方法名 说明
boolean hasNext() 如果仍有元素可以迭代,则返回 true
E next() 返回迭代的下一个元素
void remove() 从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)

Map接口

Map接口不是Collection的子类,Map是一种把键对象和值对象进行映射的集合,它的每一个元素都包含了一对键对象和值对象。Map中不能有重复的键Map中存的键值对是通过键作为标识的。

Map方法摘要

返回值 方法名 说明
void clear() 从此映射中移除所有映射关系(可选操作)
boolean containsKey(Object key) 如果此映射包含指定键的映射关系,则返回 true
boolean containsValue(Object value) 如果此映射将一个或多个键映射到指定值,则返回 true
Set entrySet() 返回此映射中包含的映射关系的 Set 视图
boolean equals(Object o) 比较指定的对象与此映射是否相等
V get(Object key) 返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null
int hashCode() 返回此映射的哈希码值
boolean isEmpty() 如果此映射未包含键-值映射关系,则返回 true
Set keySet() 返回此映射中包含的键的 Set 视图
V put(K key, V value) 将指定的值与此映射中的指定键关联(可选操作)
void putAll(Map m) 从指定映射中将所有映射关系复制到此映射中(可选操作)
V remove(Object key) 如果存在一个键的映射关系,则将其从此映射中移除(可选操作)
int size() 返回此映射中的键-值映射关系数
Collection values() 返回此映射中包含的值的 Collection 视图

这一篇博客只是简单的介绍下JAVA集合框架,接下来的几篇博客中将逐一的介绍JAVA集合框架中常用的实现类。


推荐阅读
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细介绍了 GWT 中 PopupPanel 类的 onKeyDownPreview 方法,提供了多个代码示例及应用场景,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
author-avatar
完结那份友谊吧_586
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有