集合框架

集合的由来

处理多个相同数据我们采用数组,但数组空间固定不能动态增长,插入或删除元素比较麻烦。我们使用集合来解决这个问题。

集合特点:元素类型可以不同、集合长度可变、空间不固定。

Java中对一些数据结构和算法进行了封装即集合。集合也是一种对象,用于存储、检索、和传输对象。

JCF(Java Collections Framework)集合框架。它提供了用于管理集合的接口和类。

在集合框架中,分为两种API:

1、装载数据的集合类

2、操作集合的工具类

集合(Collection)接口位于Set接口和List接口的最顶层,是Set接口和List接口的父接口。定义了Collection对象共有的一些基本方法,这些方法分为基本操作、批量操作和数组操作。

Iterator接口是一种用于遍历集合的接口。所谓遍历,是指从集合中取出每一个元素的过程。

集合(Collection)接口分为三大类:

List接口:一列数据,数据内容可以重复,以元素安插的次序来放置元素,不会重新排列。
Set接口:一列数据,数据内容不能重复,使用自己内部的一个排列机制放置元素。
Map接口:一列数据对,使用自己内部的一个排列机制放置元素

集合的选用:

(一)操作一列数据,而且数据有重复时选择List接口的实现类。

List接口的实现类具有共同的方法:
    add()  —— 向集合中添加元素(增)
    remove() – 将元素从集合中移除(删)
    get()   —— 从集合中获取元素(查)
    set()   —— 修改集合中的元素(改)
    size()  —— 查看集合长度
List接口的实现类的选择

ArrayList:使用最广泛,集合元素增加或删除操作不频繁时使用。最适合查询。

LinkedList:当需要在集合的中间位置,频繁增加或删除元素时使用。

Vector:与ArrayList类似,但Vector是线程安全的,所以性能要低于ArrayList

LinkedList>ArrayList>Vector

泛型与foreach循环

泛型:

由于集合中保存的元素都是Object类型,当一个元素从集合中取出来后都是Object类型的对象,所以我们必须对其进行强制类型转换。为了解决这种麻烦,JDK1.5中提供了一种新的处理方式泛型。
如:List list = new ArrayList();

for each:

在JDK1.5中增加了一种新型的循环,称之为for each循环,该循环大大简化了对于集合的遍历操作。
如:
for(String a : list){
System.out.println(a);
}

(二)操作一列数据,而且数据无重复时选择Set接口的实现类。

Set接口的实现类具有共同的方法:
add() —— 向集合中添加元素(增)
remove(Object o) – 将元素从集合中移除(删)
size() —— 查看集合长度

set接口实现类的选择

HashSet:速度快,不排序。
TreeSet:速度慢,排序。

Map接口

Map接口不是Collection接口的继承。Map接口用于维护键/值对(key/value pairs)。每个条目包括单独的两部分 :
key
Value

在Map中不允许出现重复的键.

key 和 value 可以是任何类的实例

Map接口的实现类的共同方法

Map接口的实现类都是关于键值对的操作,它们拥有一些共性的方法:
put() 将键值对存入集合
get() 根据键取出元素的值
keySet()
将Map中的所有键取出形成一个Set
values()
将Map中的所有值取出形成一个Collection
remove() 根据键移除值

Java集合框架中提供了一个操作Set、List和Map等集合的工具类Collections,该工具类中提供了大量方法,用于对集合元素进行排序、查询、修改等操作。

工具类Collections和Arrays

Java集合框架同时也提供了Arrays类用于操作数组。Arrays类包含用来操作数组(比如排序和搜索)的各种方法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值