List集合ArrayList,LinkList
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相关推荐
- Java ArrayList和Vector、LinkedList与ArrayList、数组(Array)和列表集合(ArrayList)的区别...
ArrayList和Vector的区别 ArrayList与Vector主要从二方面来说. 一.同步性: Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的. ...
- C#方法,可空类型,数组,集合,ArrayList排序,List,Hashtable和Dictionary
C#方法 方法的定义: public void/int Compare(int a,int b){ } Program program = new Program(); Console.WriteLi ...
- 第九天 (集合 ArrayList)
目录 集合 ArrayList 创建集合的对象 ArrayList成员方法 集合 集合和数组的对比 1.长度: 集合自动伸缩,可长可短,自动扩容. 数组长度固定. 2.存储类型: 集合可以存储引用数据 ...
- java集合-ArrayList
java集合 ArrayList Iterable Comparable(排序接口) 项目结构: class Dog implements Comparable<Dog> {private ...
- Java学习——集合ArrayList类
1,集合ArrayList类底层就是用数组来实现的,其语法为: ArrayList objectName =new ArrayList<>(); 这个E一定要用引用数据类型 2,集合跟数组 ...
- java arraylist lik_java 集合ArrayList及LinkList源码分析
首先是ArrayList的继承体系,代码如下: Java代码 publicclassArrayListextendsAbstractList implementsList, RandomAccess, ...
- 集合-ArrayList
一.ArrayList的注意事项: 1)ArrayList可以放任何元素,包括空值,可以加入多个空值. 2)ArrayList是由数组来实现数据存储的 3)ArrayList基本等同于Vector,除 ...
- Java集合—ArrayList底层原理
原文作者:0 errors 0 warnings 原文地址:用大白话告诉你ArrayList的底层原理 目录 一.数据结构 二.线程安全性 三.继承关系 四.构造方法 五.add()方法 六.扩容机制 ...
- Java集合-ArrayList源码解析-JDK1.8
◆ ArrayList简介 ◆ ArrayList 是一个数组队列,相当于 动态数组.与Java中的数组相比,它的容量能动态增长.它继承于AbstractList,实现了List, RandomAcc ...
最新文章
- 异常:javax.servlet.jsp.PageContext cannot be resolved to a type
- java控制一次传10条数据_java 定时同步数据的任务优化
- 手把手教你学Dapr - 2. 必须知道的概念
- 美国教授北大演讲:并不是每个人都适合做学术
- 转:配置 SQL Server 2005 远程调试存储过程
- 2020年中国最具影响力的50位商界领袖:马云、任正非、王传福位列前三
- python中的缩进是长度统一吗_python缩进长度是否统一
- 【QA】基于动态协同网络(DCN)的问答模型
- word文档打不开怎么办,word安全模式怎么解除,word打不开的解决办法
- 你最喜欢的奥斯卡电影是哪部?
- BUAA 1489
- Scrum板与Kanban如何抉择?敏捷工具:opdea板与按照guarbpgz
- Coredump-X: C++:std::terminate
- oracle保留六位小数,oracle 小数保留位数
- 自动驾驶汽车测试技术与应用进展
- 使用 OpenCV 和 Python 从视频中快速提取帧
- Docker 入门笔记 8 - Namespace 简介(中)
- wifi信号增强android,wifi信号增强器下载安装
- web3D 车型展示
- PHP阴历阳历天干地支纪年月日生肖五行24节气生辰八字
热门文章
- 使用正则表达式更改编译版本号
- OSChina_IOS版客户端笔记(四)_程序数据、缓存的管理
- Sqlserver 数据库安全
- flink的savepoint实验-scala
- flink on yarn模式下释放flink占用yarn的资源
- sh: 0: getcwd() failed: No such file or directory解决
- gensim出现segmentation Fault解决方案
- fill value must be in categories解决一例
- csv文件用excel打开有多行是空的,用sublime打开空白行没有''处理方案
- nametuple用法(转)