1.List定义

List是一种有序链表:

  • List内部按照元素的先后顺序存放
  • 每个元素都可以通过索引确定自己的位置
  • 类似数组,但大小可变
//List<E>是一种有序链表:
//* List的元素可以重复
//* List的元素可以是null
import java.util.ArrayList;
import java.util.List; public class Main {
public static void main(String[] args){
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(2);
list.add(null);
list.add(3);
System.out.println(list.size());
System.out.println(list.toString());
}
}


## 2.List常用方法:
* void add(E e) 在末尾添加一个元素
* void add(int index, E e) 在指定索引添加一个元素
* int remove(int index) 删除指定索引的元素
* int remove(Object e) 删除某个元素
* E get(int index) 获取指定索引的元素
* int size() 获取链表大小(包含元素的个数)

3.List特点

List是一种有序链表:

数组也是有序结构,但是大小固定,且删除元素时需要移动后续元素;因此使用数组添加和删除元素非常不方便。ArrayList是在内部使用数组存储所有元素的的链表。

https://blog.csdn.net/tangyaya8/article/details/76595488/

List有ArrayList和LinkedList两种实现

ArrayList LinkedList
获取指定元素 速度很快 需要从头开始查找元素
添加元素到末尾 速度很快(如果当前List已满,需要重新复制一个新数组) 速度很快
在指定位置添加、删除 需要移动元素 不需要移动元素
内存占用 较大

通常情况下,优先使用ArrayList

4.遍历List使用Iterator或者foreach循环

4.1方法一:使用for循环

for循环对于ArrayList效率比较高,对于LinkedList效率比较低

import java.util.ArrayList;
import java.util.List; public class Main {
public static void main(String[] args){
List<String> list = new ArrayList<>();
list.add("Hello");
list.add("world");
list.add("java");
list.add(null);
list.add("python");
for(int i=0;i<list.size();i++){
String s = list.get(i);
System.out.println(s);
}
}
}


### 4.2方法二:使用iterator
```#java
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Main {

public static void main(String[] args){

List list = new ArrayList<>();

list.add("Hello");

list.add("world");

list.add("java");

list.add(null);

list.add("python");

for(Iterator it = list.iterator();it.hasNext()

廖雪峰Java5集合-2List-1使用List的更多相关文章

  1. 廖雪峰Java5集合-3Map-1使用Map

    廖雪峰的视频不全,以下是疯狂Java关于Map的讲解 1.Map定义 Map是一种键值映射表,可以通过key快速查找value,同python的dict.key不允许重复,value可以重复. Map ...

  2. 廖雪峰Java5集合-4Set-1使用Set

    集合 Set用于存储不重复的元素集合: boolean add(E e) boolean remove(Object o) boolean contains(Object o) int size() ...

  3. 廖雪峰Java5集合-1Java集合简介-1Java结合简介

    1.集合 定义:集合就是一堆东西.集合里的东西,称为元素Element 数学中的集合: 有限集合: * 一个班所有的学生组成的集合 * 一个网站所有的商品组成的集合 无限集合: * 全体自然数集合 * ...

  4. 廖雪峰Java5集合-6Stack-1使用Stack

    1.栈的定义 栈Stack是一种后进先出(LIFO: Last In First Out)的数据结构,可以看作一端封闭的容器,先进去的元素永远在底部,最后出来. 栈有2个重要的方法: push(E e ...

  5. 廖雪峰Java5集合-3Map-Properties的使用

    Properties用于读取配置 properties文件只能使用ASCII码 #表示注释 可以从文件系统读取.properties文件 Properties props = new Properti ...

  6. 廖雪峰Java5集合-2List-2编写equals方法

    List是一种有序链表: List内部按照放入元素的先后顺序存放 每个元素都可以通过索引确定自己的位置 boolean contains(Object o) 是否包含某个元素 int indexOf( ...

  7. 廖雪峰Java5Java集合-5Queue-1使用Queue

    Queue特性和基本方法 Queue实现一个先进先出(FIFO, First In First Out)的队列.如收银台排队支付. Java中LinkedList实现了Queue接口,可以直接把Lin ...

  8. 爬取廖雪峰的python3教程

    从廖雪峰老师的python教程入门的,最近在看python爬虫,入手了一下 代码比较low,没有用到多线程和ip代理池 然后呢,由于robots.txt的限定,构建了一些user-agent,并放慢的 ...

  9. 廖雪峰Java6 IO编程-2input和output-4Filter模式

    1.JDK提供的InputStream分为两类: 直接提供数据的InputStream * FileInputStream:从文件读取 * ServletInputStream:从HTTP请求读取数据 ...

随机推荐

  1. [codeforces Mail.Ru Cup 2018 Round 3][B Divide Candies ][思维+数学]

    https://codeforces.com/contest/1056/problem/B 题意:输入n,m    求((a*a)+(b*b))%m==0的(a,b)种数(1<=a,b<= ...

  2. AangularJS入门总结三

    (参考的资料) 1. 数据绑定的原理: (1)  $watch 队列: 在DOM中每次绑定一些东西,就会往$watch队列中插入一条$watch: 每一个绑定到了DOM上的数据都会生成一个$watch ...

  3. 【BZOJ1497】【NOI2006】最大获利

    最小割好劲啊 原题: 新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机遇,更是挑战.THU集团旗下的CS&T通讯公司在新一代通讯技术血战的前夜,需要做太多的准备工作,仅就站址选择一项 ...

  4. 企业库实现AOP的几种方法

    1.创建新对象时,分继承基类和继承接口 TargetClass theTarget = PolicyInjection.Create<TargetClass>(parameter1, pa ...

  5. Oracle 11g direct path read 等待事件的理解

    在Oracle 11g中,全表扫描可能使用direct path read方式,绕过buffer cache,这样的全表扫描就是物理读了. 在10g中,都是通过gc buffer来读的,所以不存在di ...

  6. mac-ppt-auto-open-recovery-files

    mac 每次打开PPT都会出现一个自动保存的文件,不知道这个文件是保存在哪里,该怎么删除 打开finder(访达),按 shift+command+G,输入~/Library/Containers/c ...

  7. MySql NDB cluster replication配置

    文章目录 单机部署: 1. 创建ndb_mgmd配置文件: 2. 创建ndbd配置文件 3. 创建mysqld配置文件 4. 安装初始数据库 5. 按顺序启动ndb_mgmd, ndbd, mysql ...

  8. apache kafka系列之在zookeeper中存储结构

    1.topic注册信息 /brokers/topics/[topic] : 存储某个topic的partitions所有分配信息 Schema:   {    "version": ...

  9. elasticsearch 镜像使用

    elasticsearch 镜像使用 下载镜像: docker pull elasticsearch:6.5.4 创建容器: docker run -it -p 9200:9200 -p 9300:9 ...

  10. 关于adaboost分类器

    我花了将近一周的时间,才算搞懂了adaboost的原理.这根骨头终究还是被我啃下来了. Adaboost是boosting系的解决方案,类似的是bagging系,bagging系是另外一个话题,还没有 ...