数据结构之链表

1、 LinkedList:

java 复制代码
package com.datastructure.linkedlist;
import java.util.LinkedList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;

public class LinkedListExample {
    public static void main(String[] args) {
    	
        LinkedList<String> linkedList = new LinkedList<>();

        // 添加元素到链表末尾
        linkedList.add("Apple");
        linkedList.add("Banana");
        linkedList.add("Orange");

        // 在指定位置插入元素
        linkedList.add(1, "Grapes");

        // 删除指定位置的元素
        linkedList.remove(2);

        // 获取指定位置的元素
        String element = linkedList.get(0);
        System.out.println("Element at index 0: " + element);

        // 修改指定位置的元素
        linkedList.set(1, "Mango");

        // 判断链表是否为空
        boolean isEmpty = linkedList.isEmpty();
        System.out.println("Is linked list empty? " + isEmpty);

        // 获取链表的大小
        int size = linkedList.size();
        System.out.println("Size of linked list: " + size);

        // 遍历链表元素
        for (String s : linkedList) {
            System.out.println(s);
        }

        // 将LinkedList转换为数组
        String[] array = linkedList.toArray(new String[0]);
        System.out.println("Array: " + Arrays.toString(array));

        // 将LinkedList反转
        Collections.reverse(linkedList);

        // 将LinkedList排序
        Collections.sort(linkedList);

        // 队列操作
        linkedList.addFirst("Cherry");
        String firstElement = linkedList.removeFirst();
        System.out.println("First element: " + firstElement);
        String peekFirstElement = linkedList.peekFirst();
        System.out.println("Peek first element: " + peekFirstElement);
        
        // 输出链表元素
        System.out.println("Linked list after operations:");
        for (String s : linkedList) {
            System.out.println(s);
        }
        
        // 使用迭代器遍历链表
        Iterator<String> iterator = linkedList.iterator();
        while (iterator.hasNext()) {
            String elements = iterator.next();
            System.out.println(elements+"...........");
        }
    }
}

2、ArrayList:

java 复制代码
package com.datastructure.array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
//创建一个整型ArrayList并进行了各种操作,
//包括添加、获取、修改、删除、判断是否为空、获取大小、遍历和转换为数组。
public class ArrayListDemo {
	
    public static void main(String[] args) {
        // 创建一个空的整型ArrayList
        ArrayList<Integer> list = new ArrayList<Integer>();
        
        // 添加元素到ArrayList的末尾
        list.add(10);
        list.add(20);
        list.add(30);
        
        // 在指定位置插入元素
        list.add(0, 5);
        
        // 将另一个ArrayList的全部元素添加到当前ArrayList
        list.addAll(new ArrayList<>(Arrays.asList(1, 2, 3)));
        
        // 获取指定位置的元素
        int element = list.get(0);
        System.out.println("Element at index 0: " + element);
        
        // 获取元素第一次出现的索引,若不存在则返回-1
        int index = list.indexOf(10);
        System.out.println("Index of element 10: " + index);
        
        // 修改指定位置的元素
        list.set(0, 15);
        
        // 删除指定位置的元素
        list.remove(3);
        
        // 删除第一次出现的指定元素
        list.remove(Integer.valueOf(10));
        
        // 删除包含在给定集合中的所有元素
        list.removeAll(Arrays.asList(1, 2, 3));
        
        // 判断ArrayList是否为空
        boolean isEmpty = list.isEmpty();
        System.out.println("ArrayList is empty: " + isEmpty);
        
        // 获取ArrayList的大小
        int size = list.size();
        System.out.println("Size of ArrayList: " + size);
        
        // 遍历ArrayList并打印元素
        for (int element1 : list) {
            System.out.println(element1);
        }
        
        // 或者使用迭代器进行遍历
        Iterator<Integer> iterator = list.iterator();
        while (iterator.hasNext()) {
            int elements = iterator.next();
            System.out.println(elements);
        }
        
        // 将ArrayList转换为数组
        Integer[] arr = list.toArray(new Integer[list.size()]);
    }
}
相关推荐
小bo波8 小时前
Java Swing 图形用户界面实验 —— 从算术练习到游戏开发的完整实践
java·课程设计·gui·游戏开发·扫雷·swing
咖啡八杯10 小时前
GoF设计模式——备忘录模式
java·后端·spring·设计模式
SamDeepThinking20 小时前
裁掉那个差程序员后,给你看团队里高手的代码:这个习惯,希望你有
java·后端·程序员
朕瞧着你甚好21 小时前
技术雷达 & Java 集成评估报告 — Apache Tika 3.3.1
java·ai编程
MacroZheng1 天前
短短几天,暴涨2.8万Star!又一款编程神器开源!
java·人工智能·后端
SamDeepThinking1 天前
函数式编程:用BiFunction消除多类型分支的代码重复
java·后端·面试
Flittly2 天前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
小兔崽子去哪了2 天前
Java 生成二维码解决方案
java·后端
人活一口气2 天前
从JVM调优到MCP协议:Java全栈技术体系深度总结与企业级架构实践
java·spring boot
NE_STOP2 天前
Vibe Coding -- 完整项目案例实操
java