网站首页 > java教程 正文
Java里面最重要,最常用也就是集合一部分了。能够用好集合和理解好集合对于做Java程序的开发拥有无比的好处。本文详细解释了关于Java中的集合是如何实现的,以及他们的实现原理。
一、集合框架概述
1. 容器简介
在大多数情况下面,我们需要能够存储一组数据的容器,这一点虽然数组可以实现,但是如果我们需要存储的数据的个数多少并不确定。比如说:我们需要在容器里面存储某个应用系统的当前的所有的在线用户信息,而当前的在线用户信息是时刻都可能在变化的。 也就是说,我们需要一种存储数据的容器,它能够自动的改变这个容器的所能存放的数据数量的大小。这一点上,如果使用数组来存储的话,就显得十分的笨拙。
2. 容器的分类
Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念:
1) Collection 。 一组对立的元素,通常这些元素都服从某种规则。List必须保持元素特定的顺序,而Set 不能有重复元素。
2) Map 。 一组成对的“键值对”对象。如果使用Collection 表示Map的部分内容,会便于查看此部分内容。因此Map一样容易扩展成多维Map ,无需增加新的概念,只要让Map中的键值对的每个“值”也是一个Map即可。
二、Collection
Collection 接口用于表示任何对象或元素组。想要尽可能以常规方式处理一组元素时,就使用这一接口。Collection 在前面的大图也可以看出,它是List和Set 的父类。并且它本身也是一个接口。
Java的Collection的迭代器(Iterator)能够用来:
1) 使用方法iterator() 要求容器返回一个Iterator .第一次调用Iterator 的next() 方法时,它返回集合序列的第一个元素。
2) 使用next() 获得集合序列的中的下一个元素。
3) 使用hasNext()检查序列中是否元素。
4) 使用remove()将迭代器新返回的元素删除。
三、List
List是容器的一种,表示列表的意思。当我们不知道存储的数据有多少的情况,我们就可以使用List 来完成存储数据的工作。List的最大的特点就是能够自动的根据插入的数据量来动态改变容器的大小。
在“集合框架”中有两种常规的 List 实现:ArrayList 和 LinkedList。
四、Map
数学中的映射关系在Java中就是通过Map来实现的。它表示,里面存储的元素是一个对(pair),我们通过一个对象,可以在这个映射关系中找到另外一个和这个对象相关的东西。我们可以把这个接口方法分成三组操作:改变、查询和提供可选视图。
五、Set
Set最大的特性就是不允许在其中存放的元素是重复的。根据这个特点,我们就可以使用Set这个接口来实现关于商品种类的存储需求。具体的 Set 实现类依赖添加的对象的 equals() 方法来检查等同性。
想了解常用集合的使用方法和实现原理的话可以私信小编领取《Java集合排序及java集合类详解》哦!
猜你喜欢
- 2024-11-17 三句话都能解释清楚的java集合类HashSet,你清楚吗?
- 2024-11-17 Java常用的并发集合类(java中的并发是什么意思)
- 2024-11-17 数据结构之集合体系概览 带你了解集合体系中有哪些重要的分类
- 2024-11-17 能懂系列之 List 集合详解(list集合的方法)
- 2024-11-17 100个Java工具类之1:多种集合类型实现排序功能
- 2024-11-17 Java 集合体系有什么?(一)(java集合概述)
- 2024-11-17 「软帝学院」java集合类框架,你了解多少?一
- 2024-11-17 面试官问道:关于java集合类你都搞懂了吗?学会怒怼面试官
- 2024-11-17 跟我学编程 5:Java中常见的集合 知多少?
- 2024-11-17 Java多线程环境下使用的集合类示例详解
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)