• List集合


    一、特点、特有方法

     

    1. import java.util.ArrayList;
    2. import java.util.List;
    3. public class ListTest1 {
    4. public static void main(String[] args) {
    5. //1.创建一个ArrayList集合对象(有序,可重复,有索引)
    6. List list=new ArrayList<> ();
    7. list.add ( "蜘蛛精" );
    8. list.add ( "至尊宝" );
    9. list.add ( "至尊宝" );
    10. list.add ( "牛夫人" );
    11. System.out.println (list);
    12. //2.public void add(int index ,E element) :在某个索引处插入元素
    13. list.add ( 2,"紫霞仙子" );
    14. System.out.println ( list );
    15. //3.public E remove(int index) 根据索引删除元素 返回被删除元素
    16. System.out.println ( list.remove ( 2 ) );
    17. System.out.println ( list );
    18. //4.public E get(int index):返回集合中制定位置的元素
    19. System.out.println ( list.get ( 3 ) );
    20. //5.public E set(int index,E element):修改索引位置处的元素,修改成功后,会返回原来的数据
    21. System.out.println ( list.set ( 3, "牛魔王" ) );
    22. System.out.println ( list );
    23. }
    24. }

    二、遍历方式(List家族通用)

    1. import java.util.ArrayList;
    2. import java.util.Iterator;
    3. import java.util.List;
    4. public class ListTest2 {
    5. public static void main(String[] args) {
    6. List list =new ArrayList<> ();
    7. list.add ( "糖宝宝" );
    8. list.add ( "王慧饭" );
    9. list.add ( "大宝贝" );
    10. //1.for 循环
    11. for (int i = 0; i < list.size (); i++) {
    12. String s = list.get ( i );
    13. System.out.println ( s );
    14. }
    15. //2.迭代器
    16. Iterator id = list.iterator ();
    17. while (id.hasNext ()){
    18. System.out.println ( id.next () );
    19. }
    20. //3.foreach
    21. for (String s : list) {
    22. System.out.println (s);
    23. }
    24. //4.lambda表达式
    25. list.forEach ( s -> System.out.println (s) );
    26. }
    27. }

    三、ArrayList集合的底层原理,适用场景

     四、LinkedList集合的底层原理(双链表)

    1.底层原理

    2.应用场景

    1.排队

     2.设计栈

    1. import java.util.LinkedList;
    2. public class ListTest3 {
    3. public static void main(String[] args) {
    4. //1.创建一个队列
    5. LinkedList queue=new LinkedList<> ();
    6. queue.addLast ( "第1号人" );
    7. queue.addLast ( "第2号人" );
    8. queue.addLast ( "第3号人" );
    9. queue.addLast ( "第4号人" );
    10. System.out.println ( queue );
    11. //出队操作
    12. System.out.println ( queue.removeFirst () );
    13. System.out.println ( queue.removeFirst () );
    14. System.out.println ( queue.removeFirst () );
    15. System.out.println ( queue );
    16. System.out.println ("------------------------------");
    17. //2.创建一个栈对象
    18. LinkedList stack=new LinkedList<> ();
    19. //压入子弹(入栈)push
    20. stack.addFirst ( "第1颗子弹" );
    21. stack.addFirst ( "第2颗子弹" );
    22. stack.addFirst ( "第3颗子弹" );
    23. stack.addFirst ( "第4颗子弹" );
    24. stack.push ( "第5课子弹" );//给addFirst换了个马甲
    25. System.out.println (stack);
    26. //发射子弹(出栈)pop
    27. System.out.println ( stack.removeFirst () );
    28. System.out.println ( stack.removeFirst () );
    29. System.out.println ( stack.removeFirst () );
    30. System.out.println ( stack.pop () );//给removeFirst换了个马甲
    31. System.out.println ( stack );
    32. }
    33. }

  • 相关阅读:
    2023年“走红军走过的路”徒步穿越系列活动(大通湖站)盛大开赛!
    棋盘(马蹄集)
    ES6的箭头函数和普通函数相比有什么不同?
    Pytorch学习笔记6——时间序列RNN
    天梯赛:L1-005 考试座位号
    Qt/C++ 加入轻便性能收集器
    【JDBC实战】水果库存系统 [设计阶段]
    加速训练之并行化 tf.data.Dataset 生成器
    高效的测试覆盖率:在更短的时间内最大化提高测试覆盖率
    如何在win11中用双硬盘或移动硬盘装Ubuntu 20.04 双系统
  • 原文地址:https://blog.csdn.net/m0_64703222/article/details/132907175