1、List实现类:ArrayList、LinkedList、Vector
    • ArrayList使用:

       void test() {
      //声明
      List<String> testlist = new ArrayList<>(); //添加元素 .add方法
      testlist.add("中国"); //将元素添加到集合的末尾
      testlist.add(1,"美国"); //将元素添加到指定的索引位置(索引从0开始,且要按顺序添加,否则编译报错)
      testlist.add("法国");
      testlist.add("日本");
      //删除元素 .remove方法
      testlist.remove(1);
      //修改元素 .set方法
      testlist.set(1,"新西兰"); //获取元素 .get方法
      System.out.println("索引为1的元素是:" + testlist.get(1));
      //获取集合元素个数 .size方法
      System.out.println("集合元素个数是:" + testlist.size() );
      }

      遍历元素的3种方法:

       //元素遍历的3中方法:使用Iterator遍历、for循环遍历、foreach遍历
      System.out.println("使用Iterator遍历:");
      Iterator<String> testlistIterator=testlist.iterator();
      while (testlistIterator.hasNext()){
      System.out.print(testlistIterator.next());
      System.out.print(" ");
      } System.out.println(""); //仅仅为了换行显示
      System.out.println("使用for循环遍历:");
      for (int i=0;i<testlist.size();i++){
      System.out.print(testlist.get(i) + " ");
      } System.out.println("");
      System.out.println("使用foreach遍历:");
      for (String x:testlist) {
      System.out.print( x + " ");
      }
    • LinkedList:LinkedList类的使用方法和ArrayList基本一样,只需修改下声明处的代码即可
      List<String> testList = new LinkedList<>();
    • Vector:
      List<String> platformList = new Vector<>();

2、ArrayList、LinkedList、Vector的区别【面试常问点】

List实现类
ArrayList
LinkedList
Vector
底层实现
数组结构
双链表
数组结构
优势
查找效率高
插入删除效率高
查找效率高
线程安全
非线程安全
非线程安全
线程安全
扩容机制
默认增长为原来的1.5倍
不需要动态扩容
默认增长为原来的2倍
 
备注:
数组和链表的区别:
  • 数组:是相同类型的元素按照一定顺序排列
  • 链表:是一种物理存储单元上非连续,非顺序的存储结构
线程安全:即某一时刻只有一个线程能够写Vector,避免多线程同时写而引起的不一致性,
并发环境下使用ArrayList或者LinkedList,可以调用Collections类的synchronizedList()方法

Java - 集合 - List的更多相关文章

  1. Java集合专题总结(1):HashMap 和 HashTable 源码学习和面试总结

    2017年的秋招彻底结束了,感觉Java上面的最常见的集合相关的问题就是hash--系列和一些常用并发集合和队列,堆等结合算法一起考察,不完全统计,本人经历:先后百度.唯品会.58同城.新浪微博.趣分 ...

  2. Scala集合和Java集合对应转换关系

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 用Scala编码的时候,经常会遇到scala集合和Java集合互相转换的case,特意mark一 ...

  3. java集合你了解多少?

    用了java集合这么久,还没有系统的研究过java的集合结构,今天亲自画了下类图,总算有所收获. 一.所有集合都实现了Iterable接口. Iterable接口中包含一个抽象方法:Iterator& ...

  4. 深入java集合学习1-集合框架浅析

    前言 集合是一种数据结构,在编程中是非常重要的.好的程序就是好的数据结构+好的算法.java中为我们实现了曾经在大学学过的数据结构与算法中提到的一些数据结构.如顺序表,链表,栈和堆等.Java 集合框 ...

  5. Java集合框架List,Map,Set等全面介绍

    Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I]   +--java.util.ArrayList [C]   +- ...

  6. Java集合框架练习-计算表达式的值

    最近在看<算法>这本书,正好看到一个计算表达式的问题,于是就打算写一下,也正好熟悉一下Java集合框架的使用,大致测试了一下,没啥问题. import java.util.*; /* * ...

  7. 【集合框架】Java集合框架综述

    一.前言 现笔者打算做关于Java集合框架的教程,具体是打算分析Java源码,因为平时在写程序的过程中用Java集合特别频繁,但是对于里面一些具体的原理还没有进行很好的梳理,所以拟从源码的角度去熟悉梳 ...

  8. Java 集合框架

    Java集合框架大致可以分为五个部分:List列表,Set集合.Map映射.迭代器.工具类 List 接口通常表示一个列表(数组.队列.链表 栈),其中的元素 可以重复 的是:ArrayList 和L ...

  9. Java集合概述

    容器,是用来装东西的,在Java里,东西就是对象,而装对象并不是把真正的对象放进去,而是指保存对象的引用.要注意对象的引用和对象的关系,下面的例子说明了对象和对象引用的关系. String str = ...

  10. 深入java集合系列文章

    搞懂java的相关集合实现原理,对技术上有很大的提高,网上有一系列文章对java中的集合做了深入的分析, 先转载记录下 深入Java集合学习系列 Java 集合系列目录(Category) HashM ...

随机推荐

  1. 网页出现横向滚动条的原因可能是使用bootstrap不当引起

    Bootstrap的栅格布局超级方便我们写网页.但是在不是全体配合使用的情况下,会出现横向滚动条的现象. 什么叫不是配合使用的情况呢? >>一种情况是:你使用了row作为你的第一层父元素: ...

  2. (转)git fetch + merge 和 git pull 的区别

    转自:http://blog.csdn.net/a19881029/article/details/42245955 Git fetch和git pull都可以用来更新本地库,它们之间有什么区别呢? ...

  3. gulp打包js多个文件夹并压缩混淆,编译ES6语法,及多个import依赖由一个入口打包成一个cdn

    感觉和webpack的步骤差不多 首先安装gulp:参考上一篇 安装完之后 新建一个文件目录起名 在当前目录下打开cmd 执行:npm init 创建package.json文件 然后安装第一个插件g ...

  4. Linux环境C语言斐波拉切数列(1,1,2,3,5,8,13,.........)实现

    斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一 ...

  5. Homebrew安装Mysql后的两步必要的命令

    linxmousedeiMac:~ linxmouse$ mysql.server start Starting MySQL .. SUCCESS! linxmousedeiMac:~ linxmou ...

  6. 关于print()、sys.stdout、sys.stderr的一些理解

    print() 方法的语法: print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) 其中file = sys.stdout的 ...

  7. Java基础面试题总结之简述题

    一,数组的优缺点 在Java核心技术卷1中写到数组是一种数据结构,用来储存同一类型值的集合. 优点: 1,按照索引查询元素速度快,效率高 2,能存储大量数据 3,按照索引遍历数组方便 缺点: 1,长度 ...

  8. 高级特征工程I

    Mean encodings 以下是Coursera上的How to Win a Data Science Competition: Learn from Top Kagglers课程笔记. 学习目标 ...

  9. shell脚本编程学习笔记(一)

    一.脚本格式 vim shell.sh #!/bin/bash //声明脚本解释器,这个‘#’号不是注释,其余是注释 #Program: //程序内容说明 #History: //时间和作者 二.sh ...

  10. 如何去官网上下载tomcat的linux版本

    1.首先进入官网,进入如下位置 2.进入bin文件夹中下载: 原文链接:https://blog.csdn.net/zdb292034/article/details/82433072