常用Java API: ArrayList(Vector) 和 LinkedList
摘要:
本文主要介绍ArrayList(Vector)和LinkedList的常用方法, 也就是动态数组和链表。
ArrayList
ArrayList 类可以实现可增长的对象数组。
构造方法
ArrayList()
;//构造一个空向量,使其内部数据数组的大小为 10,其标准容量增量为零。
ArrayList(int initialCapacity)
;//使用指定的初始容量和容量增量构造一个空的向量。
增加元素
add(E e)
;//将指定元素添加到末尾
add(int index, E element)
//在此向量的指定位置插入指定的元素
删除元素
remove(int index)
;//移除此向量中指定位置的元素
clear()
;//从此向量中移除所有元素。
修改元素
set(int index, E element)
;//用指定的元素替换此向量中指定位置处的元素
查找元素
get(int index)
//返回向量中指定位置的元素
indexOf(Object o)
//返回此向量中第一次出现的指定元素的索引,如果此向量不包含该元素,则返回 -1。
lastIndexOf(Object o)
返回此向量中最后一次出现的指定元素的索引;如果此向量不包含该元素,则返回 -1。
容器大小
size()
;//返回此向量中的组件数。
判空
isEmpty()
;//测试此向量是否不包含组件
转化为数组
toArray()
;//返回一个数组,包含此向量中以恰当顺序存放的所有元素。
转化为字符串
toString()
;//返回此向量的字符串表示形式,其中包含每个元素的 String 表示形式。
实例
ArrayList<Integer> V = new ArrayList<>();
V.add(1);
V.add(1);
V.set(0, 0);
System.out.print(V.toString());
输出:
[0, 1]
LinkedList
LinkedList是List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列。
add(E e)
//在末尾添加一个元素addFirst(E e)
//在开头添加一个元素addLast(E e)
//在末尾添加一个元素offer(E e)
//将指定元素添加到此列表的末尾(最后一个元素)clear()
//从此列表中移除所有元素element()
获取但不移除此列表的头(第一个元素)。peek()
//获取但不移除此列表的头(第一个元素)。poll()
//获取并移除此列表的头(第一个元素)getFirst()
返回此列表的第一个元素。getLast()
返回此列表的最后一个元素indexOf(Object o)
返回此列表中首次出现的指定元素的索引,如果此列表中不包含该元素,则返回 -1。int lastIndexOf(Object o)
返回此列表中最后出现的指定元素的索引,如果此列表中不包含该元素,则返回 -1。pop()
从此列表所表示的堆栈处弹出一个元素。void push(E e)
将元素推入此列表所表示的堆栈。remove()
获取并移除此列表的头(第一个元素)。remove(int index)
移除此列表中指定位置处的元素size()
//返回元素个数
大体上来说LinkedList和ArrayList的方法用法都一样,无非是get,set等方法,不过LinkedList可以用作栈和队列(链表实现),因为它包含了(
push,pop)栈的进出,(offer,poll)队列的进出等方法。
最后说一下遍历:
- 通过迭代器
Iterator iterator=students.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
- for循环和get方法
for(int i = 0; i < n; i++)
System.out.println(E.get(i))
- for each
for(int x : E){ //构造容器时用的什么类型,就定义什么类型。
System.out.println(x);
}
stack和queue
上面已经说过,LinkedList可以用来实现栈和队列。
在JAVA中Stack也有专门的类,是通过Vector实现的。
实例:
Stack<Integer> Stack = new Stack<>(); //第一种栈的实现方式
LinkedList<Integer> Stack = new LinkedList<>(); // LinkedList没有实现Stack接口,但是我们只需要用其中的关于栈的方法。
Queue<Integer> Queue = new LinkedList<>();//LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。
在使用这些集合的时候,我们不需要背会所有的方法(函数),只需要知道一个大概就行了,因为编译器有方法提示嘛~
常用Java API: ArrayList(Vector) 和 LinkedList的更多相关文章
- 常用Java API之Ramdom--用代码模拟猜数小游戏
常用Java API之Ramdom Ramdom类用来生成随机数字.使用起来也是三个步骤: 1.导包 import java.util.Random; 2.创建 Random r = new Rand ...
- 常用Java API之Scanner:功能与使用方法
Scanner 常用Java API之Scanner:功能与使用方法 Scanner类的功能:可以实现键盘输入数据到程序当中. 引用类型的一般使用步骤:(Scanner是引用类型的) 1.导包 imp ...
- Java基础系列 - JAVA集合ArrayList,Vector,HashMap,HashTable等使用
package com.test4; import java.util.*; /** * JAVA集合ArrayList,Vector,HashMap,HashTable等使用 */ public c ...
- 算法竞赛中的常用JAVA API:PriorityQueue(优先队列)(转载)
算法竞赛中的常用JAVA API:PriorityQueue(优先队列) PriorityQueue 翻译过来就是优先队列,本质是一个堆, 默认情况下堆顶每次都保留最小值,每插入一个元素,仍动态维护堆 ...
- 算法竞赛中的常用JAVA API :HashSet 和 TreeSet(转载)
算法竞赛中的常用JAVA API :HashSet 和 TreeSet set set容器的特点是不包含重复元素,也就是说自动去重. HashSet HashSet基于哈希表实现,无序. add(E ...
- 算法竞赛中的常用JAVA API :HashMap 和 TreeMap(转载)
算法竞赛中的常用JAVA API :HashMap 和 TreeMap 摘要 本文主要介绍Map接口下的HashMap和TreeMap. HashMap HashMap是基于哈希表的 Map 接口的实 ...
- 8.算法竞赛中的常用JAVA API :Calendar日期类
8.算法竞赛中的常用JAVA API :Calendar日期类 摘要 在蓝桥杯中有关于日期计算的问题,正好java中的Date类和Calendar类提供了对日期处理的一些方法.Date类大部分方法已经 ...
- 7.算法竞赛中的常用JAVA API :String 、StringBuilder、StringBuffer常用方法和区别(转载)
7.算法竞赛中的常用JAVA API :String .StringBuilder.StringBuffer常用方法和区别 摘要 本文将介绍String.StringBuilder类的常用方法. 在j ...
- 6.算法竞赛中的常用JAVA API :Math类(转载)
6.算法竞赛中的常用JAVA API :Math类 求最值 最小值 Math.min(int a, int b) Math.min(float a, float b) Math.min(double ...
随机推荐
- python模块--__future__(向上兼容模块)
py2.7 unicode_literals 将字符串默认视为unicode, 即u'xxx'和'xxx'将是一样的, 而再想表示字节需用b'xxx'表示 division / 将表示正常除法操作 ...
- axios 取消请求 (如:用户登录失效,阻止其他请求)
const CancelToken = axios.CancelToken; const source = CancelToken.source(); axios.interceptors.reque ...
- 多线程run()方法是不能够被直接调用的
操作系统线程的五种状态: 1.新建状态(New):新创建了一个线程对象. 2.就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法.该状态的线程位于"可运行 ...
- 垃圾分类app--NABCD--团队项目需求与分析
我们的产品是--智能垃圾分类APP,它的设计灵感的来自于"可持续化发展战略,走绿色发展道路",众所周知,垃圾是放错了地方的资源,因此我们团队为了响应国家"垃圾分类&quo ...
- 测试开发【提测平台】分享10-Element UI抽屉和表单校验&增改接口合并实现应用管理
微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 开篇说个小讨论,一个群里聊天聊到关于更新篇章的长度,是小篇幅多次,还是每次按照一个小完整的功能,我个人的是按照后种来的,主要的思考就是希望 ...
- dede后台栏目管理文章统计数量和实际文章数不一致解决办法
操作dede_arctiny表,将和栏目对应的typeid所有文章去掉即可.
- dede5.7 标题长度限制修改
我们经常碰到dede标题长度不够用的问题20个字的标题有时候是真的有点短了网上也有些修改长度问题的帖子,但我发现都不完整所以写下来供大家参考下.免得浪费时间 第一步: 修改下面4处文件: dede目录 ...
- JDBC-1(概述&建立)
基于宋红康老师所讲JDBC所作笔记 1.JDBC概述 1.1 数据持久化 持久化:将数据保持到可掉电式存储设备中以供之后使用. 数据持久化意味着将内存中的数据保存到硬盘上加以固化,实现过程大多通过各种 ...
- Docker系列(8)- 常用其他命令(1) | 日志、元数据、进程的查看
后台启动容器 # 命令 docker run -d 镜像名 [root@localhost ~]# docker run -d centos #问题:docker ps,发现centos停止了 #常见 ...
- springboot 运行出现错误 Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.
原因是我将springboot启动类换到了另外一个方法中 出现了一个异常 后来发现因为我换了类但是忘记了换类名所以才报错 @ComponentScan @EnableAutoConfiguration ...