ArrayList、List特点:查询快、增删慢

链表特点:查询慢,增删快

案例

package day29_collection集合体系;

import java.util.ArrayList;
import java.util.List; /*
* List:
* 有序的(存储和读取的顺序是一致的)
* 有整数索引
* 允许重复的
*
* List的特有功能:
* void add(0, E element)
* E get(int index)
* E remove(int index)
* E set(int index, E element)
*
* 增删改查
*/
public class ListDemo {
public static void main(String[] args) {
List li = new ArrayList();
li.add("hello");
li.add("world");
li.add("java"); li.set(1,"aa"); //将指定索引位置的元素替换为指定元素,并将原先的元素返回
li.remove(2); //删除指定元素并返回 for(int i=0;i<li.size();i++) {
System.out.println(li.get(i));
}
}
}
package day29_collection集合体系;

import java.util.LinkedList;

/*
* List的常用子类:
* ArrayList
* 底层是数组结构,查询快,增删慢
* LinkedList
* 底层结构是链表,查询慢,增删快
*
* 如何选择使用不同的集合?
* 如果查询多,增删少,则使用ArrayList
* 如果查询少,增删多,则使用LinkedList
* 如果你不知道使用什么,则使用ArrayList
*
* LinkedList的特有功能:
* void addFirst(E e)
* void addLast(E e)
E getFirst()
E getLast()
E removeFirst()
E removeLast()
*
*/
public class LinkedListDemo {
public static void main(String[] args) {
LinkedList kl = new LinkedList();
kl.add("hello");
kl.add("wrold"); kl.addFirst("java");//将元素添加到索引为0的位置
kl.addLast("android");//将元素添加到索引为size()-1的位置 System.out.println(kl.getFirst());
System.out.println(kl.getLast()); System.out.println(kl.removeFirst());
System.out.println(kl);
}
}

29.3 ArrayList、List、LinkedList(链表)优缺点的更多相关文章

  1. ArrayList和LinkedList、Vector的优缺点?

    一般在面试中可能会被问到ArrayList.LinkedList.Vector三者相关的区别! 一般来说我想大概都会回答如下的这些: ArrayList底层是数组结构,查询快,增删慢,线程不安全,效率 ...

  2. 比较List和ArrayList的性能及ArrayList和LinkedList优缺点

    List和ArrayList的性能比较 在使用ArrayList这样的非泛型集合的过程中,要进行装箱和拆箱操作,会有比较大的性能损失,而使用泛型集合就没有这样的问题.List是泛型,而ArrayLis ...

  3. ArrayList和LinkedList的区别以及优缺点

    作用 ArrayList和LinkedList都是实现了List接口的容器类,用于存储一系列的对象引用.他们都可以对元素的增删改查进行操作. 对于ArrayList,它在集合的末尾删除或添加元素所用的 ...

  4. ArrayList和LinkedList内部是怎么实现的?他们之间的区别和优缺点?

    ArrayList 内部使用了数组形式进行了存储,利用数组的下标进行元素的访问,因此对元素的随机访问速度非常快.因为是数组,所以ArrayList在初始化的时候, 有初始大小10,插入新元素的时候,会 ...

  5. Java中ArrayList和LinkedList区别 时间复杂度 与空间复杂度

    一般大家都知道ArrayList和LinkedList的大致区别:      1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构.      2.对于随机访问 ...

  6. 集合中list、ArrayList、LinkedList、Vector的区别、Collection接口的共性方法以及数据结构的总结

    List (链表|线性表) 特点: 接口,可存放重复元素,元素存取是有序的,允许在指定位置插入元素,并通过索引来访问元素 1.创建一个用指定可视行数初始化的新滚动列表.默认情况下,不允许进行多项选择. ...

  7. 你真的说的清楚ArrayList和LinkedList的区别吗

    参见java面试的程序员,十有八九会遇到ArrayList和LinkedList的区别?相信很多看到这个问题的人,都能回答个一二.但是,真正搞清楚的话,还得花费一番功夫. 下面我从4个方面来谈谈这个问 ...

  8. Java基础-ArrayList和LinkedList的区别

    大致区别:  1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构. 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为Lin ...

  9. ArrayList和LinkedList区别

    一般大家都知道ArrayList和LinkedList的大致区别:      1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构.      2.对于随机访问 ...

  10. Java中ArrayList和LinkedList差别

    一般大家都知道ArrayList和LinkedList的大致差别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构.  2.对于随机訪问get和set.A ...

随机推荐

  1. Redis 服务端程序实现原理

    上篇我们简单介绍了 redis 客户端的一些基本概念,包括其 client 数据结构中对应的相关字段的含义,本篇我们结合这些,来分析分析 redis 服务端程序是如何运行的.一条命令请求的完成,客户端 ...

  2. Spring01——你应该了解的,有关 IOC 容器的一切

    从本文开始,将开始介绍关于 Spring 的一些常见知识点.关注我的公众号「Java面典」,每天 10:24 和你一起了解更多 Java 相关知识点. 在如今的 Java Web 开发中,Spring ...

  3. Java 中,如何对日期进行加减操作

    今天在做项目时,遇到了对时间的加减进行操作的需求,根据传入的日期字符串,操作参数("+","-"),加数(要操作的天数),对日期进行加减操作,经查询资料,自己写 ...

  4. 各种WAF绕过手法学习

    原文:https://mp.weixin.qq.com/s/aeRi1lRnKcs_N2JLcZZ0Gg 0X00    Fuzz/爆破 fuzz字典 1.Seclists/Fuzzing https ...

  5. mybatis高级应用(四)_逆向工程

    1 逆向工程 源码请参考:云盘下工程 generatorSqlmapCustom 1.1     什么是逆向工程 mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单 ...

  6. SpringCloud系列之服务注册发现(Eureka)应用篇

    @ 目录 前言 项目版本 Eureka服务端 Eureka客户端 服务访问 前言 大家好,距离上周发布的配置中心基础使用已过去差不多一周啦,趁着周末继续完善后续SpringCloud组件的集成,本次代 ...

  7. MySQL 教程--检视阅读

    MySQL 教程--检视阅读 准备:Windows 上安装 MySQL 教程地址,PHP语言基础 教程地址2 教程地址3,有讲数据库的备份和恢复 教程地址4,w3c.china,php基础,扩展阅读 ...

  8. PYTHON数据类型(进阶)

    PYTHON数据类型(进阶) 一.字符串.列表.字典.元祖.集合的补充 str #captalize 首字母大写,其余小写 s1.capitalize() #swapcase 大小写翻转 s1.swa ...

  9. 使用Docsify做文档网站的详细配置教程

    使用Docsify做文档网站的详细配置教程 作者:xhemj 没错,它叫Docsify. xhemj的文档中心就是用这个写的 开源地址:https://github.com/docsifyjs/doc ...

  10. js实现动态球球背景

    document.getElementsByTagName("body")[0].style.backgroundColor="#000" //构造函数 fun ...