java 集合之实现类ArrayList 和 LinkedList
List 的方法列表
| 方法名 | 功能说明 | |
|---|---|---|
| ArrayList() | 构造方法,用于创建一个空的数组列表 | |
| add(E e) | 将指定的元素添加到此列表的尾部 | |
| get(int index) | 返回此列表中指定位置上的元素 | |
| size() | 返回此列表中的元素数 | |
| clear() | 移除此列表中的所有元素 | |
| isEmpty() | 如果此列表中没有元素,则返回true | |
| remove(int index) | 移除此列表中指定位置上的元素 | |
| indextof(Object o) | 返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回-1 | |
| toArray | 按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组 |
下面将用一个简单的例子进行说明:
实现类ArrayList
package yjlblog;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Test {
public static void main(String[] args) {
List list = new ArrayList();//List 是接口,用多态需要指向它的实现类
list.add("double kill");
list.add("three kill");
list.add("four kill");
list.add("pentakill");
System.out.println(list); //[double kill, three kill, four kill, pentakill]
//默认调用的是tostring 方法,但是这个头string方法不是object里面的,可以查帮助文档可知,是继承的collection的一个方法
System.out.println(list.get(2)); //four kill
String s = (String)list.get(2);//如果用定义变量的形式来表示的话,需要用到强制类型的转换,因为list。get()方法是object的类里的
System.out.println(list.isEmpty());
//false
//list.clear();
//System.out.println(list.isEmpty());
//true
//System.out.println(list.remove(2));//输出制定索引的 被“删除的元素”
list.remove(1);//删除索引为“1” 的元素
System.out.println(list);//[double kill, four kill, pentakill],删除了索引为“1”的元素
System.out.println(list.indexOf("double kill"));//0 输出所指明字符串的 “索引值”
System.out.println(list.size());// 3 ,返回数组的长度
Object[] obj = list.toArray();
System.out.println(obj.length);
//数组的遍历 for 循环
for (int i = 0;i < list.size();i++)
{
System.out.print(list.get(i)+" ");
}
System.out.println();
//使用for each 语句
for (Object x:list)
{
System.out.print(x+" ");
}
System.out.println();
//使用迭代器
//1.先获得list集合的迭代器
Iterator iterator = list.iterator();
//2.通过它的hasNest方法,判断是否遍历完成,用循环实现
while (iterator.hasNext() == true)
{
//3.使用next方法,去除它的下一个元素
System.out.print(iterator.next()+" ");
}
System.out.println();
}
}
//再写上迭代器的说明
//加上arraylist 和 linbkedlist的区别 和代码
//加上后面的几个方法
实现类LinkedList
- List 接口的链接列表实现,实现所有可选的列表操作,并且允许所有元素(包括null)。除了实现List接口外,LinkedList类还为在列表的开头及结尾
get,remove,insert元素提供了统一的命名方法。这些操作允许将链表列表表应作堆栈、队列、或双端队列。
LinkedList的部分方法
| 方法名 | 功能说明 | |
|---|---|---|
| addFirst(E e) | 将指定元素插入此列表的开头 | |
| addLast(E e) | 将指定元素添加到此列表的结尾 | |
| removeFirst() | 移除并返回此列表的第一个元素 | |
| removeLast() | 移除并返回此列表的最后一个元素 | |
| getFirst() | 返回此列表中的第一个元素 | |
| getLast() | 返回此列表中的最后一个元素 |
package yjlblog;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Test {
public static void main(String[] args) {
List list = new LinkedList();//List 是接口,用多态需要指向它的实现类
list.add("double kill");
list.add("three kill");
list.add("four kill");
list.add("pentakill");
System.out.println(list); //[double kill, three kill, four kill, pentakill]
//和ArrayList 的其他方法都是一样的,只是加了一些方法
集合的遍历
从上面的例子中也有所提及,下面看代码
- 使用for 循环
- 使用
for -each循环 - 使用Iterator(迭代器)接口
每个集合类都提供了iterator方法以返回一个迭代器,通过这个迭代器,可以完成集合的遍历或删除操作,迭代器的使用步骤如下:
**** - 1.通过
Iterator方法获得集合的迭代器 - 2.通过调用
hasNext方法判断是否存在下一个元素 - 3.使用
next方法,去除它的下一个元素
//数组的遍历 for 循环
for (int i = 0;i < list.size();i++)
{
System.out.print(list.get(i)+" ");
}
System.out.println();
//使用for each 语句
for (Object x:list)
{
System.out.print(x+" ");
}
System.out.println();
//使用迭代器
//1.先获得list集合的迭代器
Iterator iterator = list.iterator();
//2.通过它的hasNest方法,判断是否遍历完成,用循环实现
while (iterator.hasNext() == true)
{
//3.使用next方法,去除它的下一个元素
System.out.print(iterator.next()+" ");
}
System.out.println();
java 集合之实现类ArrayList 和 LinkedList的更多相关文章
- Java集合系列(二):ArrayList、LinkedList、Vector的使用方法及区别
本篇博客主要讲解List接口的三个实现类ArrayList.LinkedList.Vector的使用方法以及三者之间的区别. 1. ArrayList使用 ArrayList是List接口最常用的实现 ...
- java集合的实现细节--ArrayList和LinkedList
ArrayList和LinkedList的实现差异 List代表一种线性表的数据结构,ArrayList则是一种顺序存储的线性表,ArrayList底层采用动态数组的形式保存每一个集合元素,Link ...
- java——集合、泛型、ArrayList、LinkedList、foreach循环、模拟ktv点歌系统
集合:一系列特殊的类,这些类可以存储任意类型的对象,长度可变,集合类都在java.util包中. 但是集合记不住对象的类型,当把对象从集合中取出时这个对象的编译类型就变成了Object类型.这样在取元 ...
- java集合【12】——— ArrayList,LinkedList,Vector的相同点与区别是什么?
目录 特性列举 底层存储结构不同 线程安全性不同 默认的大小不同 扩容机制 迭代器 增删改查的效率 总结一下 要想回答这个问题,可以先把各种都讲特性,然后再从底层存储结构,线程安全,默认大小,扩容机制 ...
- java集合框架collection(2)ArrayList和LinkedList
ArrayList是基于动态数组实现的list,而LinkedList是基于链表实现的list.所以,ArrayList拥有着数组的特性,LinkedList拥有着链表的特性. 优缺点 ArrayLi ...
- Java 集合:List(ArrayList,LinkedList)
- Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
概要 前面,我们学完了List的全部内容(ArrayList, LinkedList, Vector, Stack). Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例 Ja ...
- 【转】Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
概要 前面,我们学完了List的全部内容(ArrayList, LinkedList, Vector, Stack). Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例 Ja ...
- java基础解析系列(十)---ArrayList和LinkedList源码及使用分析
java基础解析系列(十)---ArrayList和LinkedList源码及使用分析 目录 java基础解析系列(一)---String.StringBuffer.StringBuilder jav ...
随机推荐
- 团队作业8——第二次项目冲刺(Beta阶段)Day7——5.26
展开圆桌式会议: 会议内容:1.汇总BETA阶段的成果.2.针对BETA阶段的大家的获得的收获进行了讨论.3.对整个团队项目的过程进行了总结.每个人的工作分配: 队员 今日任务 贡献比 林燕 做最后测 ...
- 201521123097《Java程序设计》第六周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 2. 书面作业 1.clone方法 1.1 Object对 ...
- 201521123080《Java程序设计》第3周学习总结
1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识组织起来.请使用纸笔或者下面的工具画出本周学习到的知识点.截图或者拍照上传. 2. 书面作 ...
- 201521123060 《Java程序设计》第10周学习总结
1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 异常: 1.不要乱用异常: 2.异常发生时:确定异常类型,异常位置: 3.尽量使用已有的异常类. 多线程: 2 ...
- 201521123079《java程序设计》第13周学习总结
1. 本周学习总结 1.以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. (1)netassist可以用来链接IP端口 (2)accept方法可以用来监听端口,当没有客户端连接 ...
- chrome保存网页为单个文件(mht格式)
网页归档(英语:MIME HTML或MIME Encapsulation of Aggregate HTML Documents,又称单一文件网页或网页封存盘案)为以多用途互联网邮件扩展格式,将一个多 ...
- Akka(25): Stream:对接外部系统-Integration
在现实应用中akka-stream往往需要集成其它的外部系统形成完整的应用.这些外部系统可能是akka系列系统或者其它类型的系统.所以,akka-stream必须提供一些函数和方法来实现与各种不同类型 ...
- Python学习笔记006_异常_else_with
>>> # try-except语句 >>> >>> # try : >>> # 检测范围 >>> # exc ...
- 远程无法访问linux Mysql解决方案
在网上有很多关于这个的解决方案,我也采用了 写的比较详细的如: 1. 改表法.可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更 ...
- CSDN博客新手使用方案
CSDN博客简易使用 在CSDN上写博客,总是遇到很多问题,虽然这些问题很简单,但是对于新手来说,缺经常遇到,因此写篇博客记载. 一.CSDN的博客如何上传图片 如果有现成 ...