Java从零开始学二十(集合简介)
一、为什么需要集合框架
数组的长度是固定的,但是如果写程序时并不知道程序运行时会需要多少对象、或者需要更复杂的方式存储对象,---那么,可以使用JAVA集合框架,来解决这类问题
二、集合框架主要接口
|
No
|
接口
|
描述
|
|
1
|
Collection
|
是存放一组单值的最大接口,所谓的单值是指集合中的每个元素都是一个对象。一般很少会直接使用此接口直接操作。
|
|
2
|
List
|
是Collection接口的子接口,也是最常用的接口,此接口对Collection接口进行了大量的扩充,里面的内容是允许重复的。
|
|
3
|
Set
|
是Collection接口的子类,没有对Collection接口进行扩充,里面不允许存放重复内容。
|
|
4
|
Map
|
Map是存放一对值的最大接口,即,接口中的每个元素都是一对,以key-value的形式保存。
|
|
5
|
Iterator
|
集合的输出接口,用于输出集合中的内容,只能进行从前到后的单向输出。
|
|
6
|
ListIterator
|
是Iterator的子接口,可以进行双向输出。
|
|
7
|
Enumeration
|
是最早的输出接口,用于输出指定集合中的内容。
|
|
8
|
SortedSet
|
单值的排序接口,实现此接口的集合类,里面的内容是可以排序的,使用比较器排序。
|
|
9
|
SortedMap
|
存放一对值的排序接口,实现此接口的集合类,里面的内容按照key排序,使用比较器排序。
|
|
10
|
Queue
|
队列接口,此接口的子类可以实现队列操作。
|
|
11
|
Map.Entry
|
Map.Entry的内部接口,每个Map.Entry对象都保存着一对key-value的内容,每个Map接口中都保存多个Map.Entry接口实例。
|
三、接口的继承关系

四、Collection子接口的定义
- List接口:可以存放重复的内容。
- Set接口:不能存放重复的内容,所有的重复内容是靠hashCode()和equals()两个方法区分的。
- Queue:队列接口。
- SortedSet接口:可以对集合中的数据进行排序。
五、Collection接口的方法定义
|
No.
|
方法
|
类型
|
描述
|
|
1
|
public boolean add(E o)
|
普通
|
向集合中插入对象
|
|
2
|
public boolean addAll(Collection<? extends E> c)
|
普通
|
将一个集合的内容插入进来
|
|
3
|
public void clear()
|
普通
|
清除此集合中的所有元素
|
|
4
|
public boolean contains(Object o)
|
普通
|
判断某一个对象是否在集合中存在
|
|
5
|
public boolean containsAll(Collection<?> c)
|
普通
|
判断一组对象是否在集合中存在
|
|
6
|
public boolean equals(Object o)
|
普通
|
对象比较
|
|
7
|
public int hashCode()
|
普通
|
哈希码
|
|
8
|
public boolean isEmpty()
|
普通
|
集合是否为空
|
|
9
|
public Iterator<E> iterator()
|
普通
|
为Iterator接口实例化
|
|
10
|
public boolean remove(Object o)
|
普通
|
删除指定对象
|
|
11
|
public boolean removeAll(Collection<?> c)
|
普通
|
删除一组对象
|
|
12
|
public boolean retainAll(Collection<?> c)
|
普通
|
保存指定内容
|
|
13
|
public int size()
|
普通
|
求出集合的大小
|
|
14
|
public Object[] toArray()
|
普通
|
将一个集合变为对象数组
|
|
15
|
public <T> T[] toArray(T[] a)
|
普通
|
指定好返回的对象数组类型
|
六、区别
- Connection:接口存储值不唯一,无序的对象
- List:接口存储值不唯一,有序(插入顺序)的对象
- Set:接口存储值唯一,无序的对象
- Map:接口存储值一组键值对象,提供键(Key)到值(Value)的映射
Java从零开始学二十(集合简介)的更多相关文章
- Java从零开始学二十四(集合工具类Collections)
一.Collections简介 在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合 二 ...
- Java从零开始学二十二(集合Set接口)
一.Set接口的定义 Set接口也是Collection接口的子接口,但是与Collection或List接口不同的是,Set接口中不能加入重复的元素 Set接口的主要方法与Collection是一致 ...
- Java从零开始学二十三(集合Map接口)
一.Map接口 Collection.Set.List接口都属于单值的操作,即:每次只能操作一个对象,而Map与它们不同的是,每次操作的是一对对象,即二元偶对象,Map中的每个元素都使用key à v ...
- Java从零开始学二十一(集合List接口)
一.List接口 List是Collection的子接口,里面可以保存各个重复的内容,此接口的定义如下: public interface List<E> extends Collecti ...
- Java从零开始学二十九(大数操作(BigIntger、BigDecimal)
一.BigInteger 如果在操作的时候一个整型数据已经超过了整数的最大类型长度long的话,则此数据就无法装入,所以,此时要使用BigInteger类进行操作. 不可变的任意精度的整数.所有操作中 ...
- Java从零开始学二十八(Math类和Random类)
一.Math概述 提供了常用的数学运算方法和两个静态常量E(自然对数的底数)和PI(圆周率) 二.常用方法 package com.pb.demo1; public class MathTest { ...
- Java从零开始学二十六(包装类)
一.包装类 包装类是将基本类型封装到一个类中.也就是将基本数据类型包装成一个类类型. java程序设计为每一种基本类型都提供了一个包装类.这些包装类就在java.lang包中.有8个包装类 二.包装类 ...
- Java从零开始学二十五(枚举定义和简单使用)
一.枚举 枚举是指由一组固定的常量组成的类型,表示特定的数据集合,只是在这个数据集合定义时,所有可能的值都是已知的. 枚举常量的名称建议大写. 枚举常量就是枚举的静态字段,枚举常量之间使用逗号隔开. ...
- Java从零开始学四十二(DOM解析XML)
一.DOM解析XML xml文件 favorite.xml <?xml version="1.0" encoding="UTF-8" standalone ...
随机推荐
- Opencv各版本的配置
OpenCV 2.49 + VS2012 配置指南 首先下载 OpenCV2.4.9 源码: 一. 配置系统环境变量 1. 将源码解压到指定目录: 2. 将 opencv 添加到系统环境变量: ...
- Hibernate-数据库更新操作
/* Session接口下操作存在以下问题: 数据更新操作: 1.更新的时候必须要有主键; 2.若只更新部分字段内容,则未设置的字段将被设置为Null(全表更新) 3.update()没有返回值,即不 ...
- centos 6.5安装VMware tools
系统描述:win7旗舰版64位系统+VMware Workstation10+CentOS6.5(win7系统上安装了VMware Workstation10虚拟化软件,在该虚拟化软件上安装了Cent ...
- angularjs中如何在异步请求执行完以后再执行其他函数?
angularjs中如何在异步请求执行完以后再执行其他函数? 之前脑袋回路就是从上到下的执行js,直到有一次我的页面上已经显示了空才走到angularjs里的$http的成功回调函数里,然后才开始正视 ...
- [转载] MATLAB快捷键
原文地址,点此查看 一.常用对象操作 除了一般windows窗口的常用功能键外. 1.!dir 可以查看当前工作目录的文件. !dir& 可以在dos状态下查看. 2.who 可以查看当前 ...
- Extjs DateField onchange
1 开发思路: 在日期值变化的事件中获得选择后的日期值,传给后台,然后从后台加载相应的数据 2 问题:在查看extjs2.2 的api的官方说明文档,文档对datefield组件的change事件说明 ...
- appium+python自动化61-中文输入乱码问题解决
前言 在夜神模拟器上输入中文,发现是乱码,将unicodeKeyboard和resetKeyboard参数设置为True了,发现还是没法解决. 打开手机设置语言和输入法,发现找不到Appium And ...
- JSTL fmt 格式化时间
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- Windows Server 2003 R2 IIS服务的命令行方式重启命令
iisreset /RESTART 停止后启动 iisreset /START 启动IIS (如果停止) iisreset /STOP 停止IIS (如果启动) iisreset /REB ...
- 解决hue报错:timed out (code THRIFTSOCKET): None
报错栈: [/Jun/ :: +] decorators ERROR error running <function execute at 0x7fba2804ecf8> Tracebac ...