zoukankan      html  css  js  c++  java
  • Java

    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()方法
  • 相关阅读:
    Python笔记初识
    visio开发者图形分类个人爱好
    亿图图示与visio结合使用
    xmind visio mindmanager edraw比较
    Pycharm安装步骤
    win32com问题
    Win32.com安装
    Pycharm安装步骤
    Phython笔记初识
    跨域问题解决方案
  • 原文地址:https://www.cnblogs.com/mysummary/p/12295989.html
Copyright © 2011-2022 走看看