栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Collection-List

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Collection-List

* List集合继承了Collection集合的全部功能,同时因为List系列集合有索引
* 因为List集合多了索引,所以多了很多按照索引操作元素的功能
*      for循环,Lambda表达式,foreach,迭代器
 List系列集合:添加的元素是有序,不重复,有索引
*          --ArrayList:有序,不重复,有索引
*          --linkedList:有序,不重复,有索引
*          --Vector(被ArrayList代替)
* ArrayList 是实现类集合底层基于数组存储数据的,查询快,增删慢
*      public void add(int index,E element):将指定的元素,添加到该集合中的指定位置
*      public E get(int index):返回集合中指定位置的元素
*      public E remove(int index):移除列表中指定位置的元素,返回的是被移除的元素
*      public E set(int index,E element):用指定元素替换集合中指定位置的元素,返回值的*        更新前的元素
*
* 小结;
*      List系列街喊有序,可重复,有索引
*      ArrayList是西安类集合底层基于数组存储的数据的。查询快,增删慢
*      开发中ArrayList集合用的最多
public class DemoArrayList {
    public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("mysql");
        list.add("mysql");
        list.add("java");
        list.add("java");
        
        //add
        list.add(2,"Java");
        list.forEach(System.out::println);//foreach
        System.out.println("------------------");
        
        //get
        System.out.println(list.get(2));
        Iterator iterator = list.iterator();//迭代器
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
        System.out.println("------------------");
        
        //remove
        System.out.println(list.remove(2));
        for (Object o : list) {//Lambda
            System.out.println(o);
        }
        System.out.println("------------------");
        
        //set
        list.set(1, "Mybatis");
        for (int i = 0; i < list.size(); i++) {//for循环
            Object o = list.get(i);
            System.out.println(o);
        }
    
    }
}
 
* linkedList也是list的实现类,
*      底层是基于链表的,增删比较快,查询比较慢
* linkedList是支持双链表,定位前后的元素非常快,增删守卫元素也是最快的
* 所以linkedList除了拥有List集合的全部功能还多了很多操作首尾元素的特殊功能
*      addFirst():将指定元素插入此列表的开头
*      addLast():将指定元素添加到此列表的结尾
*      getFirst():返回此列表的第一个元素
*      getList():返回此列表的最后一个元素
*      removeFirst():移除并返回此列表的第一个元素
*      removeLast():移除并返回此列表的最后一个元素
*      pop():从此列表所表示的堆栈弹出一个元素
*      push():将元素推入此元素列表所表示的堆栈
*小结:linkedList是支持双链表,定位前后的元素非常快,增删守卫元素也是最快的
*      所以提供了喝多操作首尾元素的API可以做栈和队列
*
*      如果查询多增删少用ArrayList集合
*      如果查询少增删首尾多用ListedList集合
public class DemolinkedList {
    public static void main(String[] args) {
        //做个队列:先进先出
        linkedList queue = new linkedList<>();
        queue.addLast("1号");//入队
        queue.addLast("2号");
        queue.addLast("3号");
        queue.addLast("4号");
        System.out.println(queue);//[1号, 2号, 3号, 4号]
        
        System.out.println(queue.removeFirst());//出队
        System.out.println(queue.removeFirst());
        System.out.println(queue);//[3号, 4号]
    
        //做个栈,先进后出
        linkedList stack = new linkedList<>();
        stack.push("1号");//压栈,this.addFirst()
        stack.push("2号");
        stack.push("3号");
        stack.push("4号");
        System.out.println(stack);//[4号, 3号, 2号, 1号]
    
        System.out.println(stack.pop());//弹栈,this.removeFirst()
        System.out.println(stack.pop());//3号
        System.out.println(stack);//[2号, 1号]
    }
}
Vector:线程安全,速度慢,已经被ArrayList代替(过期了)

 

 

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号