数据结构之链表

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()]);
    }
}
相关推荐
微露清风16 分钟前
系统性学习C++-第五讲-内存管理
java·c++·学习
计算机毕业设计木哥20 分钟前
计算机毕业设计选题推荐:基于SpringBoot和Vue的快递物流仓库管理系统【源码+文档+调试】
java·vue.js·spring boot·后端·课程设计
2351624 分钟前
【LeetCode】146. LRU 缓存
java·后端·算法·leetcode·链表·缓存·职场和发展
聪明的笨猪猪28 分钟前
Java Redis “运维”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
FIavor.1 小时前
怎么办这是Apifox里执行http://localhost:9002/goods/getByUserName?name=“张三“为什么我改了还是500?
java·网络·网络协议·http
编程饭碗1 小时前
【Java集合】
java
岁岁岁平安1 小时前
Java的双重检查锁机制(DCL)与懒加载的单例模式
java·单例模式·synchronized·
Jabes.yang1 小时前
Java面试场景:从Spring Boot到Kubernetes的技术问答
java· 面试· spring boot· 微服务· kubernetes· 技术栈· redis
小咕聊编程1 小时前
【含文档+PPT+源码】基于SpringBoot+Gpt个人健康管理系统
java·gpt·tomcat·毕业设计·hibernate
阿无,1 小时前
Java设计模式之工厂模式
java·开发语言·设计模式