1.List是Collection子接口,拥有其所有方法。
2.List是有序集合,集合中每个元素都有对应顺序序列。List集合可使用重复元素,可以通过索引来访问指定位置的集合元素(顺序索引从0开始) List集合默认按元素的添加顺序设置元素的索引,类似数组。(有序可重复)
3.ListIterator是Iterator的子接口,是List集合特有的迭代输出接口,它可以实现在迭代过程中对元素的增删改查。(详细介绍:http://blog.csdn.net/qq_36330228/article/details/77417163)
4.List接口中常用类:
Vector:线程安全,但速度慢,已被ArrayList替代
ArrayList:线程不安全,查询速度快
LinkList:链表结构,增删速度快

package com.wql;import java.awt.List;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;/*** List集合演示* * @author wql**/
class Persons {private String name;private int age;public Persons(String name, int age) {super();this.name = name;this.age = age;}@Overridepublic String toString() {return "Persons [name=" + name + ", age=" + age + "]";}}public class ListDemo {public static void main(String[] args) {// TODO 自动生成的方法存根ArrayList list = new ArrayList();list.add(new Persons("张三1", 20));list.add(new Persons("张三1", 20));// 元素可以重复list.add(new Persons("张三2", 22));list.add(new Persons("张三3", 23));list.add(new Persons("张三4", 24));for (Iterator iterator = list.iterator(); iterator.hasNext();) {Object object = (Object) iterator.next();System.out.println(object);}// 删除元素list.remove(1);// 修改元素list.set(3, new Persons("张三5", 25));System.out.println("***********");for (Iterator iterator = list.iterator(); iterator.hasNext();) {Object object = (Object) iterator.next();System.out.println(object);}}}

运行:


总结:
1. 如果涉及到堆栈,队列等操作,应该考虑用List,对于需要快速插入,删除元素,应该使用LinkedList,如果需要快速随机访问元素,应该使用ArrayList。
2. 如果程序在单线程环境中,或者访问仅仅在一个线程中进行,考虑非同步的类,其效率较高,如果多个线程可能同时操作一个类,应该使用同步的类。
3. 要特别注意对哈希表的操作,作为key的对象要正确复写equals和hashCode方法。
4. 尽量返回接口而非实际的类型,如返回List而非ArrayList,这样如果以后需要将ArrayList换成LinkedList时,客户端代码不用改变。这就是针对抽象编程。

转载于:https://www.cnblogs.com/wangqilong/p/8279801.html

List集合ArrayList,LinkList相关推荐

  1. Java ArrayList和Vector、LinkedList与ArrayList、数组(Array)和列表集合(ArrayList)的区别...

    ArrayList和Vector的区别 ArrayList与Vector主要从二方面来说. 一.同步性: Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的. ...

  2. C#方法,可空类型,数组,集合,ArrayList排序,List,Hashtable和Dictionary

    C#方法 方法的定义: public void/int Compare(int a,int b){ } Program program = new Program(); Console.WriteLi ...

  3. 第九天 (集合 ArrayList)

    目录 集合 ArrayList 创建集合的对象 ArrayList成员方法 集合 集合和数组的对比 1.长度: 集合自动伸缩,可长可短,自动扩容. 数组长度固定. 2.存储类型: 集合可以存储引用数据 ...

  4. java集合-ArrayList

    java集合 ArrayList Iterable Comparable(排序接口) 项目结构: class Dog implements Comparable<Dog> {private ...

  5. Java学习——集合ArrayList类

    1,集合ArrayList类底层就是用数组来实现的,其语法为: ArrayList objectName =new ArrayList<>(); 这个E一定要用引用数据类型 2,集合跟数组 ...

  6. java arraylist lik_java 集合ArrayList及LinkList源码分析

    首先是ArrayList的继承体系,代码如下: Java代码 publicclassArrayListextendsAbstractList implementsList, RandomAccess, ...

  7. 集合-ArrayList

    一.ArrayList的注意事项: 1)ArrayList可以放任何元素,包括空值,可以加入多个空值. 2)ArrayList是由数组来实现数据存储的 3)ArrayList基本等同于Vector,除 ...

  8. Java集合—ArrayList底层原理

    原文作者:0 errors 0 warnings 原文地址:用大白话告诉你ArrayList的底层原理 目录 一.数据结构 二.线程安全性 三.继承关系 四.构造方法 五.add()方法 六.扩容机制 ...

  9. Java集合-ArrayList源码解析-JDK1.8

    ◆ ArrayList简介 ◆ ArrayList 是一个数组队列,相当于 动态数组.与Java中的数组相比,它的容量能动态增长.它继承于AbstractList,实现了List, RandomAcc ...

最新文章

  1. 异常:javax.servlet.jsp.PageContext cannot be resolved to a type
  2. java控制一次传10条数据_java 定时同步数据的任务优化
  3. 手把手教你学Dapr - 2. 必须知道的概念
  4. 美国教授北大演讲:并不是每个人都适合做学术
  5. 转:配置 SQL Server 2005 远程调试存储过程
  6. 2020年中国最具影响力的50位商界领袖:马云、任正非、王传福位列前三
  7. python中的缩进是长度统一吗_python缩进长度是否统一
  8. 【QA】基于动态协同网络(DCN)的问答模型
  9. word文档打不开怎么办,word安全模式怎么解除,word打不开的解决办法
  10. 你最喜欢的奥斯卡电影是哪部?
  11. BUAA 1489
  12. Scrum板与Kanban如何抉择?敏捷工具:opdea板与按照guarbpgz
  13. Coredump-X: C++:std::terminate
  14. oracle保留六位小数,oracle 小数保留位数
  15. 自动驾驶汽车测试技术与应用进展
  16. 使用 OpenCV 和 Python 从视频中快速提取帧
  17. Docker 入门笔记 8 - Namespace 简介(中)
  18. wifi信号增强android,wifi信号增强器下载安装
  19. web3D 车型展示
  20. PHP阴历阳历天干地支纪年月日生肖五行24节气生辰八字

热门文章

  1. 使用正则表达式更改编译版本号
  2. OSChina_IOS版客户端笔记(四)_程序数据、缓存的管理
  3. Sqlserver 数据库安全
  4. flink的savepoint实验-scala
  5. flink on yarn模式下释放flink占用yarn的资源
  6. sh: 0: getcwd() failed: No such file or directory解决
  7. gensim出现segmentation Fault解决方案
  8. fill value must be in categories解决一例
  9. csv文件用excel打开有多行是空的,用sublime打开空白行没有''处理方案
  10. nametuple用法(转)