数据结构之链表

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()]);
    }
}
相关推荐
python_chai10 分钟前
Python核心数据结构详解:元组、集合与字典
java·数据结构·python
爱编程的王小美17 分钟前
8876行详解数据结构,从入门到入坟
数据结构
老华带你飞1 小时前
医药垃圾分类管理系统|基于SSM+vue医药垃圾分类管理系统的系统设计与实现(源码+数据库+文档)
java·数据库·vue·毕业设计·论文·ssm·医药垃圾分类管理系统
程序员小续1 小时前
React 多个 HOC 嵌套太深,会带来哪些隐患?
java·前端·javascript·vue.js·python·react.js·webpack
rider1892 小时前
【9】搭建k8s集群系列(二进制部署)之安装work-node节点组件(kube-proxy)和网络组件calico
java·容器·kubernetes
编程绿豆侠2 小时前
力扣HOT100之链表:19. 删除链表的倒数第 N 个结点
算法·leetcode·链表
ゞ 正在缓冲99%…2 小时前
leetcode274.H指数
java·算法·leetcode
旷野本野4 小时前
【Java】Maven
java·开发语言·maven
坊钰4 小时前
【MySQL 数据库】数据类型
java·开发语言·前端·数据库·学习·mysql·html
luckyme_4 小时前
leetcode-代码随想录-链表-链表总结篇
leetcode·链表