Java集合框架及泛型

目录

Collection接口

List接口的常用方法

LinkedList的特殊方法

ArrayList与LinkedList对比

Set接口

Set接口常用方法

Map接口

Map接口的常用方法

泛型


Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于Java.unit包中

接口 collection和继承接口List、Set,接口Map

List的实现类:ArrayList和LinkedList

Set的实现类:HashSet和TreeSet

Map的实现类:HashMap和TreeMap

集合操作工具类Collections:提供了对集合进行排序、遍历等多种算法实现

Collection接口存储一组不唯一,无序的对象

List接口继承Collection接口,存储一组不唯一,有序(插入顺序)的对象

Set接口存储一组为一,无序的对象

ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和访问元素的效率比较高。

LinkedList采用链表狮子·存储表·方式。插入,删除元素时效率比较高

Collection接口

List接口的常用方法

方法名

说    明

boolean add(Object o)

在列表的末尾顺序添加元素,

起始索引位置从0开始

void add(int index,Object o)

在指定的索引位置添加元素。

索引位置必须介于0和列表中元素个数之间

int size()

返回列表中的元素个数

Object get(int index)

返回指定索引位置处的元素。取出的元素是Object类型,使用前需要进行强制类型转换

boolean contains(Object o)

判断列表中是否存在指定元素

boolean remove(Object o)

从列表中删除元素

Object  remove(int index)

从列表中删除指定位置元素,

起始索引位置从0开始

LinkedList的特殊方法

方法名

说    明

void  addFirst(Object o)

在列表的首部添加元素

void  addLast(Object o)

在列表的末尾添加元素

Object  getFirst()

返回列表中的第一个元素

Object  getLast()

返回列表中的最后一个元素

Object  removeFirst()

删除并返回列表中的第一个元素

Object  removeLast()

删除并返回列表中的最后一个元素

ArrayList与LinkedList对比

ArrayList

LinkedList

存储方式的区别

ArrayList实现了长度可变的数组,在内存中分配连续的空间。

LinkedList采用链表存储方式。

使用场合的区别

ArrayList遍历元素和随机访问元素的效率比较高,插入、删除、修改操作频繁时性能低下。

LinkedList插入、删除、修改元素时效率较高,查找效率较低。

Set接口

Set接口存储一组唯一,无序的对象

Set接口常用的实现类:HashSet

HashSet集合的特点

集合内的元素是无序排列且不允许重复。

HashSet集合的查找效率高。

允许集合元素是null。

Set接口常用方法

方法名

说    明

boolean add(Object o)

如果Set中尚未包含指定元素o,则添加指定元素o

void clear(int index,Object o)

Set中移除所有元素

int size()

返回Set中的元素个数

boolean isEmpty()

如果Set不包含任何元素,则返回true

boolean contains(Object o)

如果Set包含指定元素o,则返回true

boolean remove(Object o)

如果Set包含指定元素o,则将其移除。

Map接口

Map接口存储一组键值对象,提供key到value的映射

Map接口常用的实现类HashMap

HashMap类的特点

不保证映射的顺序,特别是不保证顺序恒久不变

数据添加到HashMap集合后,所有数据的数据类型将转换为Object类型,所以从其中获取数据时需要进行强制类型转换

Map接口的常用方法

方法名

说    明

Object put(Object key, Object val)

以“键-值对”的方式进行存储

Object get (Object key)

根据键返回相关联的值,如果不存在指定的键,返回null

Object remove (Object key)

删除由指定的键映射的“键-值对”

int size()

返回元素个数

Set keySet ()

返回键的集合

Collection values ()

返回值的集合

boolean  containsKey (Object key)

如果存在由指定的键映射的“键-值对”,返回true

Set            entrySet()

泛型

泛型是JDK1.5的新特性

泛型的本质是参数化类型:将所操纵的数据类型指定为一个参数,使代码可以应用于多种类型。

定义:将对象的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和稳定性。

优点:所有的转换都是自动和隐式进行的,简单安全。提高了代码的重用率

泛型集合

JDK1.5中使用泛型改写了集合框架中的所有类和接口,也就是泛型集合

典型的泛型集合ArrayList<E>、HashMap<K,V>

<E>、<K,V>表示该泛型集合中的元素类型

泛型集合中的数据不再转换为Object

LInkList和HashSet等也有自己的泛型形式。

泛型集合的优点

存储数据时进行严格类型审查,确保只有合适类型的对象才能存储在集合中

从集合中 检索对象时,减少了强制类型转换。

Callections算法类

Collections类是Java提供的一个集合操作工具类。

Collections类定义了一系列用于操作集合的静态方法,用于实现对集合元素的排序、查找和替换等操作。

Collections和Collection是不同的,前者是集合的操作类,后者是集合接口

常用方法

sout(); 排序

binarySearch();        查找

max() \ min();        查找最大值\最小值

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值