20151117 List集合+ArrayList类+LinkedList类

原创 2015年11月17日 20:25:02

List集合为列表类型,主要特征是以线性方式存储对象。List包括List接口以及List接口的所有实现类,List接口实现了Collection接口,List接口的常用实现类包括ArrayList类和LinkedList类。

1.1 List的用法

常用方法:
- add(int index, Object obj):向集合的指定索引位置添加对象,其他对象的索引位置相对后移一位,索引位置从0开始。
- addAll(int index, Collection coll):向集合的指定索引位置添加指定集合中的所有对象。
- remove(int index):清除集合中指定索引位置的对象。
- set(int index, Object obj):将集合中指定索引位置的对象修改为指定的对象。
- get(int index):获取集合中指定索引位置的对象。
- indexOf(Object obj):获取集合中指定对象的索引,当存在多个时,返回第一个的索引位置,当不存在时,返回-1。
- lastIndexOf(Object obj):获取集合中指定对象的索引,当存在多个时,返回最后一个的索引位置,当不存在时,返回-1。
- listIterator():获取一个包含所有对象的ListIterator型实例。
- listIterator(int index):获取一个包含从指定索引位置到最后的ListIterator型实例。
- subList(int fromIndex, int toIndex):截取从起始索引位置fromIndex(包含)到终止索引位置toIndex(不包含)的对象,重新生成一个List集合并返回。

1.2 ArrayList类

ArrayList类实现了List接口,采用数组结构保存对象。优点是便于对集合进行快速的随机访问,缺点是向指定索引位置插入对象和删除对象的速度较慢。
【例】编写一个模仿经常需要随机访问集合中对象的例子。

public static void main(String[] args){
    String a = "A", b = "B", c = "C", d = "D", e = "E";
    List<String> list = new ArrayList<String>();
    list.add(a);
    list.add(b);
    list.add(c);
    list.add(d);
    list.add(e);
    System.out.println(list.get((int)(Math.random() * 5)));
}

控制台输出
在编写该例子时,用到了java.lang.Math类的random()方法,通过该方法可以得到一个小于1的的double型随机数,将该随机数乘以5后再强制转换成整数,可得到一个0~4的整数。

1.3 LinkedList

LinkedList类实现了List接口,采用链表结构保存对象。优点是便于向集合中插入和删除对象,缺点是随机访问对象速度较慢。
LinkedList类在List接口的基础之上增加的常用方法:
- addFirst(Object obj):将指定对象插入到列表的开头。
- addLast(Object obj):将指定对象插入到列表的截尾。
- getFirst():获得列表开头的对象。
- getLast():获得列表结尾的对象。
- removeFirst():移除列表开头的对象。
- removeLast() :移除列表结尾的对象。
【例】使用LinkedList类。

public static void main(String[] args){
    String a = "A", b = "B", c = "C", test = "test";
    LinkedList<String> list = new LinedLis<String>();
    list.add(a);
    list.add(b);
    list.add(c);
    System.out.println(list.getFirst());
    list.addFirst(test);
    System.out.println(list.getFirst());
    list.removeFirst();
    System.out.println(list.getFirst());
}

控制台输出

相关文章推荐

List结构集合类的使用:ArrayList、LinkedList、Vector(向量)和Stack(栈)

List结构集合类的使用:ArrayList、LinkedList、Vector(向量)和Stack(栈)  系统设计要求如下: 程序代码如下://员工管理系统 package co...

Java泛型集合结构,List<T>,及其子类ArrayList<T>,LinkedList<T>的使用

学习内容: 集合: 1.List:存储有序的,可重复的元素。 2.Set:存储是无序的,不允许重复元素。 3.集合List,及其子类ArrayList,LinkedList的使用 明白其来源及其存...

JavaSE入门学习35:Java集合框架之List接口及其实现类ArrayList和LinkedList

一List接口概述        List接口是Collection接口的子接口,实现List接口的集合类中的元素是有顺序的,而且可以重复,被称为序列。        List集合中的元素都对应一个整...

16 API-集合(List的子类(ArrayList_Vector_LinkedList,集合嵌套遍历),JDK5新特性(泛型,增强for循环,静态导入,可变参数)

16 API-集合(List的子类(ArrayList_Vector_LinkedList,集合嵌套遍历),JDK5新特性(泛型,增强for循环,静态导入,可变参数)...

黑马程序员:集合类:List(ArrayList、LinkedList、Vector)、Set(HashSet、TreeSet)介绍

集合类 为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式 数组和集合类同是容器,有何不同? 数组虽然也...

java的List接口的实现类 ArrayList,LinkedList,Vector 的区别

Java的List接口有3个实现类,分别是ArrayList、LinkedList、Vector,他们用于存放多个元素,维护元素的次序,而且允许元素重复。 3个具体实现类的区别如下:       ...
  • Di1nuli
  • Di1nuli
  • 2013年03月27日 14:29
  • 15975

List子类 ArrayList Vector 和 LinkedList

List子类 ArrayList Vector 和 LinkedList List集合的子类遍历集合中的元素可以使用的任何迭代遍历方式 面试题: List子类的特点? ArrayLi...

Java基础-16总结List的子类,ArrayList,Vector,LinkedList,泛型,增强for循环,静态导入,可变参数

你需要的是什么,直接评论留言。 获取更多资源加微信公众号“Java帮帮” (是公众号,不是微信好友哦) 还有“Java帮帮”今日头条号,技术文章与新闻,每日更新,欢迎阅读 学习交...

List接口、ArrayList类和LinkedList类 笔记

List接口继承了Collection接口,它包含了Collection接口的所有方法,外加其他一些方法: public interface List extends Collection { A...

JAVA基础再回首(十五)——List的三个子类、ArrayList类、Vector类、LinkedList类的使用与练习

JAVA基础再回首(十五)——List的三个子类、ArrayList类、Vector类、LinkedList类的使用与练习 版权声明:转载必须注明本文转自程序员杜鹏程的博客:http://blog...
  • m366917
  • m366917
  • 2016年08月20日 17:54
  • 834
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:20151117 List集合+ArrayList类+LinkedList类
举报原因:
原因补充:

(最多只允许输入30个字)