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. django cookie与session组件

    本文目录 1 会话跟踪技术 2 cookie介绍 Django中操作Cookie Session Django中Session相关方法 Django中的Session配置 CBV中加装饰器 回到目录 ...

  2. 【Wannafly挑战赛24】【C失衡天平】

    https://www.nowcoder.com/acm/contest/186/C 题意:有n个武器,每个武器都有一个重量 Wi,有一个天平,只要两端的重量差不大于m就能达到平衡,求在天平平衡的情况 ...

  3. pythoy-生成器

    生成器:只有在调用的时候才会生成相应的数据(调用到这个数据的时候才会生成这个数据,没有调用到时就没有这个数据)只记录数据的当前位置 生成器不能像普通的列表一样,通过下标或者切片的方式去取生成器只能通过 ...

  4. ios-UITableView无内容时,不显示多余的分隔线

    效果如上. 只要补上以下方法: //设置多于的分割线 -(void)setExtraCellLineHidden: (UITableView *)tableView { UIView *view = ...

  5. ios-UITextView输入时,字数限制的倒数及对超出的字数进行截取并弹出提示框

    效果图如上,主要是右上角的Label显示框,创建完各控件后,可以在代理方法里贴上下面代码: -(void)textViewDidChange:(UITextView *)obj { UITextVie ...

  6. Easyui datagrid 去掉表头的checkbox复选框

    $(".datagrid-header-check").html(""); 在onLoadSuccess中加入此行代码即可实现datagrid去除表头的chec ...

  7. 【Disruptor】之Ringbuffer

    一.Ringbuffer的概念 =>是一个环形数据队列的数据结构 =>嗯,正如名字所说的一样,它是一个环(首尾相接的环),你可以把它用做在不同上下文(线程)间传递数据的buffer. =& ...

  8. idea快捷键的修改

    快捷键Ctrl+Alt+s,快速进入intellij idea设置项,点击Keymap,如图: 点击Main menu,再点开Code,如图: 点击Completion,再点击Basic,右键,如图 ...

  9. unzip命令

    unzip命令用于解压缩由zip命令压缩的“.zip”压缩包. 语法 unzip(选项)(参数) 选项 -c:将解压缩的结果显示到屏幕上,并对字符做适当的转换: -f:更新现有的文件: -l:显示压缩 ...

  10. laravel使用过程中一些总结

    推荐连接: laravel辅助函数总结:https://laravel-china.org/docs/laravel/5.5/helpers 基于 Laravel 集成的 Monolog 库对日志进行 ...