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. POJ3723(最小生成树,负权)

    题目描述 温迪有一个国家,他想建立一支军队来保护他的国家.他收留了N个女孩和M个男孩,想把她们收留成他的士兵.征兵无特权,必须交纳一万元.女孩和男孩之间有一些关系,温迪可以利用这些关系来降低他的成本. ...

  2. cf 水管问题

    原题链接:https://vjudge.net/contest/331120#problem/E 原文英语: You are given a system of pipes. It consists ...

  3. ssh排错思路

    telnet远程22端口refused 先netstat  -utnlp  看一下22端口监听状态(一般都不在监听) 然后systemctl  restart sshd 如果有报错,执行sshd  - ...

  4. numpy学习(三)

    练习篇(Part 3) 31. 略 32. Is the following expressions true? (★☆☆) np.sqrt(-1) == np.emath.sqrt(-1) prin ...

  5. DataGridView 定位到指定行

    //定位到指定行(样式)dataGridView1.ClearSelection();dataGridView1.Rows[selectIndex].Selected = true; //让指定行处于 ...

  6. ReviewBoard使用:添加SVN

    1.登录ReviewBoard,选择“Admin” 2.选择 “Repositores”,点击按钮“Add” 3.填写内容,然后点击按钮“SAVE”保存 Name:仓库名称(自己随意写) Hostin ...

  7. linux - python - 异常:error while loading shared libraries

    问题描述 error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No s ...

  8. 数据库Dao层编增删改查写,数据库事务,数据库升级

    数据库事务 有两个特点 1.安全性 情景:正常的转账行为,这个时候如果出现停电等异常,已经扣钱但是没有加钱:这个时候就可用数据库事务解决问题 2.高效性: 使用数据库事务添加享受同数量的数据,对比耗时 ...

  9. Codeforces Round #601 (Div. 2) B Fridge Lockers

    //题目要求的是每一个点最少要有两条边连接,所以可以先构成一个环.然后再把剩余的最短的边连接起来 #include<iostream> #include<algorithm> ...

  10. Centsos7 aria2

    wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/aria2.sh & ...