详解ArrayList和LinkedList的使用

第八讲:详解ArrayList和LinkedList的使用

一、ArrayList的使用

ArrayList 是 Java 中的一个类,它实现了 List 接口,提供了一个可调整大小的数组来存储元素。以下是 ArrayList 的常用方法及其使用示例:

  1. 构造方法

    • 创建一个空的ArrayList:

      ArrayList<String> list = new ArrayList<>();
      
    • 创建一个包含指定集合元素的ArrayList:

      List<String> otherList = new ArrayList<>();
      otherList.add("Java");
      ArrayList<String> list = new ArrayList<>(otherList);
      
  2. 添加元素

    • 在列表末尾添加一个元素:

      list.add("Java");
      
    • 在特定位置添加一个元素:

      list.add(0, "C++");
      
    • 将一个集合添加到列表中:

      list.addAll(otherList);
      
  3. 获取元素

    • 通过索引获取元素:

      String element = list.get(0);
      
    • 获取列表中的最后一个元素:

      String lastElement = list.get(list.size() - 1);
      
  4. 修改元素

    • 替换特定位置的元素:

      list.set(1, "Python");
      
  5. 移除元素

    • 移除列表中的一个元素:

      list.remove("Python");
      
    • 移除特定位置的元素:

      list.remove(0);
      
    • 移除满足某个条件的元素:

      list.removeIf(element -> element.startsWith("J"));
      
  6. 遍历列表

    • 使用 for 循环:

      for (String element : list) {
          System.out.println(element);
      }
      
    • 使用迭代器:

      Iterator<String> iterator = list.iterator();
      while (iterator.hasNext()) {
          String element = iterator.next();
          System.out.println(element);
      }
      
  7. 查找元素

    • 检查列表是否包含某个元素:

      boolean contains = list.contains("Java");
      
  8. 获取列表大小

    • 查看列表的大小:

      int size = list.size();
      
  9. 列表排序

    • 使用Collections.sort()方法:

      Collections.sort(list);
      
    • 使用 Lambda 表达式:

      list.sort(Comparator.comparing(String::toString));
      
  10. 子列表操作

    • 获取子列表:

      List<String> sublist = list.subList(1, 3);
      
  11. 清空列表

    • 清空列表中所有数据;列表中只是没有了数据,列表还存在:

      list.clear();
      
  12. 转换为数组

    • 转换为对象数组:

      String[] array = list.toArray(new String[0]);
      
  13. 列表比较

    • 检查两个列表是否相等:

      boolean isEqual = list.equals(otherList);
      
  14. 列表元素替换

    • 使用Collections.replaceAll()方法替换所有匹配的元素:

      Collections.replaceAll(list, "Java", "Kotlin");
      
  15. 列表元素替换为如果存在

    • 使用Collections.replaceIf()方法替换满足条件的元素:

      Collections.replaceIf(list, element -> element.startsWith("J"), "NewElement");
      
  16. 列表元素频率统计

    • 使用Collections.frequency()方法统计某个元素在列表中的出现次数:

      int frequency = Collections.frequency(list, "Java");
      
  17. 列表元素最后位置查找

    • 使用Collections.lastIndexOf()方法查找指定元素在列表中的最后一次出现位置:

      int lastIndex = Collections.lastIndexOf(list, "Java");
      
  18. 列表元素首次位置查找

    • 使用Collections.indexOfSubList()方法查找指定子列表在列表中第一次出现的索引:

      int firstIndex = Collections.indexOfSubList(list, otherList);
      
  19. 列表元素颠倒

    • 使用Collections.reverse()方法颠倒列表:

      Collections.reverse(list);
      
  20. 列表元素洗牌

    • 使用Collections.shuffle()方法随机打乱列表中的元素:

      Collections.shuffle(list);
      

二、LinkedList的使用

LinkedList 是 Java 中的一个双向链表实现,它继承自 AbstractSequentialList 类并实现了 List 接口、Deque 接口和 Cloneable、Serializable 接口。以下是 LinkedList 的一些常用方法及其使用示例:

  1. 构造方法

    • 创建一个空的LinkedList:

      LinkedList<String> list = new LinkedList<>();
      
  2. 添加元素

    • 在末尾添加一个元素:

      list.add("Java");
      
    • 在开头添加一个元素:

      list.addFirst("C++");
      
    • 在特定元素后添加一个元素:

      ListIterator<String> iterator = list.listIterator();
      while (iterator.hasNext()) {
          if (iterator.next().equals("Java")) {
              iterator.add("Python");
              break;
          }
      }
      
    • 在特定位置添加一个集合:

      LinkedList<String> otherList = new LinkedList<>();
      otherList.add("Python");
      list.addAll(1, otherList); // 在索引1的位置添加
      
  3. 获取元素

    • 获取第一个元素:

      String firstElement = list.getFirst();
      
    • 获取最后一个元素:

      String lastElement = list.getLast();
      
  4. 修改元素

    • 替换特定位置的元素:

      list.set(1, "Python");
      
  5. 移除元素

    • 移除第一个元素:

      list.removeFirst();
      
    • 移除最后一个元素:

      list.removeLast();
      
    • 移除特定元素:

      list.remove("Java");
      
    • 移除满足条件的元素:

      list.removeIf(element -> element.startsWith("J"));
      
  6. 遍历列表

    • 使用ListIterator:

      ListIterator<String> iterator = list.listIterator();
      while (iterator.hasNext()) {
          String element = iterator.next();
          System.out.println(element);
      }
      
  7. 查找元素

    • 检查列表是否包含某个元素:

      boolean contains = list.contains("Java");
      
  8. 获取列表大小

    int size = list.size();
    
  9. 列表元素推入和弹出(实现了 Deque 接口):

    • 推入元素到双端队列头部:

      list.push("New Element");
      
    • 弹出双端队列头部的元素:

      String element = list.pop();
      
  10. 子列表操作

    • 获取子列表:

      List<String> sublist = list.subList(1, 3);
      
  11. 清空列表

    list.clear();
    
  12. 转换为数组

    • 转换为对象数组:

      String[] array = list.toArray(new String[0]);
      
  13. 列表比较

    • 检查两个列表是否相等:

      boolean isEqual = list.equals(otherList);
      
  14. 获取和删除元素

    • 获取并删除第一个元素:

      String element = list.poll();
      
    • 获取并删除特定位置的元素:

      String element = list.remove(1);
      
  15. 列表元素频率统计

    • 使用Collections.frequency()方法统计某个元素在列表中的出现次数:

      int frequency = Collections.frequency(list, "Java");
      
  16. 列表元素颠倒

    • 使用Collections.reverse()方法颠倒列表:

      Collections.reverse(list);
      
  17. 列表元素洗牌

    • 使用Collections.shuffle()方法随机打乱列表中的元素:

      Collections.shuffle(list);
      
  18. 克隆列表

    • 克隆当前列表:

      LinkedList<String> clonedList = (LinkedList<String>) list.clone();
      
  • 21
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值