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、Queue、SortedSet。

四、Collection子接口的定义

Collection接口虽然是集合的最大接口,但是如果直接使用Collection接口进行操作的话,则表示的操作意义不明确,所以在JAVA开发中已经不提倡直接使用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)的映射
时间: 2024-10-10 07:09:22

Java从零开始学二十(集合简介)的相关文章

Java从零开始学二十四点(集合工具类Collections)

一.Collections简介 在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合 二.Collections类的常用方法及常量 No. 方法 类型 描述 1 public static final List EMPTY_LIST 常量 返回一个空的List集合 2 public static final Set EMPTY_SET 常量 返回空的Set集合 3 public sta

Java从零开始学二十二(集合Set接口)

一.Set接口的定义 Set接口也是Collection接口的子接口,但是与Collection或List接口不同的是,Set接口中不能加入重复的元素 Set接口的主要方法与Collection是一致的 Set接口的实例无法像List接口那样进行双向输出.不存在get方法使用Iterator接口来遍历集合 2个常用方法:hasNext方法表示判断是否还有元素可以迭代 next()方法:返回迭代的下一个元素 Set接口的常用子类 散列存放:HashSet 有序存放:TreeSet 二.使用SetH

Java从零开始学二十一(集合List接口)

一.List接口 List是Collection的子接口,里面可以保存各个重复的内容,此接口的定义如下: public interface List<E> extends Collection<E> 二.List接口的扩展方法 No. 方法 类型 描述 1 public void add(int index, E element) 普通 在指定位置增加元素 2 public boolean addAll(int index, Collection<? extends E>

Java从零开始学二十三(集合Map接口)

一.Map接口 Collection.Set.List接口都属于单值的操作,即:每次只能操作一个对象,而Map与它们不同的是,每次操作的是一对对象,即二元偶对象,Map中的每个元素都使用key à value的形式存储在集合之中 二.常用方法 No. 方法或类 类型 描述 1 public void clear() 普通 清空Map集合 2 public boolean containsKey(Object key) 普通 判断指定的key是否存在 3 public boolean contai

Java从零开始学二十九(大数操作(BigIntger、BigDecimal)

一.BigInteger 如果在操作的时候一个整型数据已经超过了整数的最大类型长度long的话,则此数据就无法装入,所以,此时要使用BigInteger类进行操作. 不可变的任意精度的整数.所有操作中,都以二进制补码形式表示 BigInteger(如 Java 的基本整数类型).BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法.另外,BigInteger 还提供以下运算:模算术.GCD 计算.质数测试.素数生成.位操作以及一

Java从零开始学二十八(Math类和Random类)

一.Math概述 提供了常用的数学运算方法和两个静态常量E(自然对数的底数)和PI(圆周率) 二.常用方法 package com.pb.demo1; public class MathTest { public static void main(String[] args) { System.out.println("求平方根:" + Math.sqrt(9.0)); System.out.println("求两数的最大值:" + Math.max(10,30))

Java从零开始学二十(Ubuntu下配置jdk)

一.下载 jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 二.安装JDk 2.1.解压jdk 1.创建一个目录 [email protected]:/$ sudo mkdir /usr/local/develoment [sudo] password for ln0491: [email protected]-virtual-machine:/$ ls /usr/loc

Java从零开始学二十六(包装类)

一.包装类 包装类是将基本类型封装到一个类中.也就是将基本数据类型包装成一个类类型. java程序设计为每一种基本类型都提供了一个包装类.这些包装类就在java.lang包中.有8个包装类 二.包装类的构造方法和静态方法 2.1.第一种 public Type (type value) 其中首字母大写的Type表示包装类,小写的type表示基本类型 这个构造方法接收一个基本数据类型值,并创建一个与之相应的包装类. 可以使用new关键字将一个基本类型包装为一个对象 Integer intValue

Java从零开始学四十二(DOM解析XML)

一.DOM解析XML xml文件 favorite.xml <?xml version="1.0" encoding="UTF-8" standalone="no"?> <PhoneInfo name="手机品牌"> <Brand name="华为"> <Type name="U8650"> </Type> </Brand