持有对象

持有对象

最近在刷算法题的时候,发现对容器类很多都遗忘了,因此写这篇总结来复习一下容器类,参考书籍是java编程思想,对常用的一些容器类及其方法进行总结。

基本概念

Java容器类类库的用途是保存对象,将其划分为两个不同的概念:
1.Collection。一个独立元素的序列,这些元素服从一条或者多条规则。List必须按照插入的顺序保存元素,Set不能有重复的元素,Queue按照队列规则来确定对象产生的顺序(通常与它们被插入的顺序相同)。
2.Map。一组成对的“键值对”对象,允许使用键来查找值,

添加元素

在java.util包中的Arrays和Collections类中有许多实用的方法,可以在一个Collection中添加一组元素。Arrays.asList()方法接受一个数组或者是一个逗号分割的元素列表,并将其转成一个List对象。Collections.addAll()方法接受一个Collection对象,以及一个数组或是一个用逗号分割的列表,将元素添加到Collection中。

List

List接口在Collection的基础上添加了大量的方法,使得可以在List的中间插入和删除元素。有两种类型的List:
1.基本的ArrayList,它用于随机访问元素,但是在List的中间插入和移除元素时比较慢。
2.LinkedList,可以代价较低的在List中间插入和删除元素,提供了优化的顺序访问,在随机访问方便较慢,但是特性集较ArratList更大。
add()方法用来添加对象,get()用来获取对象,contains()方法用来确定某个对象是否在列表中,remove()用来删除某个对象,indexOf()用来发现对象在List中所处位置的索引编号,subList()方法可以从较大的列表中创建一个片段,sort()方法进行排序,shuffle将随机打乱,这里需要注意的是subList()产生的列表的幕后就是初始列表,因此,对列表的修改都会反映到初始列表中,反之亦然,set()方法是在指定位置处替换元素。

迭代器

迭代器是一个对象,他的工作是遍历并选择序列中的对象,不需要知道底层的结构,Iterator的主要方法有:
1.iterator()返回一个Iterator对象,Iterator将准备好返回序列的第一个对象。
2.next()方法获得序列的下一个元素。
3.hasNext()方法检查序列中是否还有元素。
4.remove()方法将迭代器新近返回的数据删除。
迭代器统一了容器的访问方式。

ListIterator

ListIterator是一个更加强大额度Iterator的子类,用于访问各种List类。尽管Iterator只能单向移动,ListIterator能双向移动,还可以返回相对于迭代器在列表中指向的当前位置的前一个和后一个元素的索引,可以使用set()方法替换他访问过的最后一个元素。

LinkedList

LinkedList添加了可以使之用作栈,队列和双向队列的方法。
getFirst()和element()和peek()方法都用于返回列表的头元素但不删除它。
removeFirst()和remove()和poll()方法都用于删除并返回列表的头。
addFirst()将元素插入列表首部。
add()和addLast()和offer()用于将某个元素插入到列表尾部。

Stack

栈是先进后出的容器,主要有以下的方法:
1.push()将元素放入栈顶
2.peek()返回栈顶元素但不删除
3.poll()返回栈顶元素并删除

Set

Set不保存相同的元素,查找是Set最重要的操作,因此,通常选择HashSet实现。

Map

主要有以下方法:
1.put(),将键值对存入列表中。
2.get(),获得对应键的值
3.keySet(),获得键
4.values(),获得值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值