码迷,mamicode.com
首页 > 编程语言 > 详细

Java - 集合 - List

时间:2020-02-11 19:12:55      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:中国   cto   set   list()   asn   out   ons   区别   ble   

1、List实现类:ArrayList、LinkedList、Vector
    • ArrayList使用:
       1 void test() {
       2         //声明
       3         List<String> testlist = new ArrayList<>();
       4 
       5         //添加元素 .add方法
       6         testlist.add("中国");     //将元素添加到集合的末尾
       7         testlist.add(1,"美国");   //将元素添加到指定的索引位置(索引从0开始,且要按顺序添加,否则编译报错)
       8         testlist.add("法国");
       9         testlist.add("日本");
      10         //删除元素 .remove方法
      11         testlist.remove(1);
      12         //修改元素 .set方法
      13         testlist.set(1,"新西兰");
      14 
      15         //获取元素 .get方法
      16         System.out.println("索引为1的元素是:" + testlist.get(1));
      17         //获取集合元素个数 .size方法
      18         System.out.println("集合元素个数是:" + testlist.size() );
      19     }

      遍历元素的3种方法:

       1 //元素遍历的3中方法:使用Iterator遍历、for循环遍历、foreach遍历
       2         System.out.println("使用Iterator遍历:");
       3         Iterator<String> testlistIterator=testlist.iterator();
       4         while (testlistIterator.hasNext()){
       5             System.out.print(testlistIterator.next());
       6             System.out.print("  ");
       7         }
       8 
       9         System.out.println("");   //仅仅为了换行显示
      10         System.out.println("使用for循环遍历:");
      11         for (int i=0;i<testlist.size();i++){
      12             System.out.print(testlist.get(i) + "  ");
      13         }
      14 
      15         System.out.println("");   
      16         System.out.println("使用foreach遍历:");
      17         for (String x:testlist) {
      18             System.out.print( x + "  ");
      19         }
    • 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

标签:中国   cto   set   list()   asn   out   ons   区别   ble   

原文地址:https://www.cnblogs.com/mysummary/p/12295989.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!