Java语言怎么进行列表的截取操作,我想对链表中第m-n提取

Java语言怎么进行列表的截取操作,我想对链表中第m-n提取,其余还保留在链表里,并且要将新的链表输出怎么实现的呢

如图:

img

代码如下:


// 可以使用链表的subList()方法来进行列表的截取操作。该方法接受起始索引和终止索引作为参数,并返回一个新的子列表。需要注意的是,subList()方法返回的是原链表的一个视图,对子列表的修改将会影响到原链表。
import java.util.LinkedList;
import java.util.List;

public class LinkedListSublistExample {
    public static void main(String[] args) {
        // 创建一个链表并添加元素
        List<Integer> linkedList = new LinkedList<>();
        linkedList.add(1);
        linkedList.add(2);
        linkedList.add(3);
        linkedList.add(4);
        linkedList.add(5);

        // 截取第m-n的子列表
        int m = 2; // 起始索引(包含)
        int n = 4; // 终止索引(不包含)
        List<Integer> sublist = linkedList.subList(m, n);

        // 输出新的链表
        for (Integer num : sublist) {
            System.out.println(num);
        }
    }
}


你可以看看这个https://blog.csdn.net/qq_31594647/article/details/127571553

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7741768
  • 你也可以参考下这篇文章:n个整数中找出连续m个数加和是最大Java版
  • 除此之外, 这篇博客: 删除链表中的第n到m个节点中的 代码实现(JAVA) 部分也许能够解决你的问题。
  • 以下回答由chatgpt基于相关博客总结生成:

    标题:如何在Java中对链表进行截取操作,并保留剩余部分作为新的链表输出?

    解决方案:

    在Java中,可以通过遍历链表来实现对链表的截取操作,并将剩余部分保留在一个新的链表中。下面是具体的步骤和代码示例:

    1. 新建一个链表类LinkedList,其中包括链表节点类Node和链表的相关操作方法。
    public class LinkedList {
        private Node head; // 链表头节点
        private int size; // 链表长度
    
        private class Node {
            private int data; // 节点数据
            private Node next; // 指向下一个节点的指针
    
            public Node(int data) {
                this.data = data;
            }
        }
    
        // 添加节点到链表末尾
        public void add(int data) {
            Node newNode = new Node(data);
            if (head == null) {
                head = newNode;
            } else {
                Node current = head;
                while (current.next != null) {
                    current = current.next;
                }
                current.next = newNode;
            }
            size++;
        }
    
        // 获取链表长度
        public int getSize() {
            return size;
        }
    
        // 遍历链表并截取指定范围的元素
        public LinkedList subList(int m, int n) {
            LinkedList resultList = new LinkedList();
            if (m > n || m < 1 || n > size) {
                return resultList;
            }
    
            Node current = head;
            int count = 1;
            while (current != null && count < m) {
                current = current.next;
                count++;
            }
    
            while (current != null && count <= n) {
                resultList.add(current.data);
                current = current.next;
                count++;
            }
    
            return resultList;
        }
    }
    
    1. 在主程序中创建一个链表对象,并添加一些测试元素。
    public class Main {
        public static void main(String[] args) {
            LinkedList list = new LinkedList();
            list.add(1);
            list.add(2);
            list.add(3);
            list.add(4);
            list.add(5);
    
            int m = 2;
            int n = 4;
            LinkedList subList = list.subList(m, n);
    
            System.out.println("原链表:");
            list.print();
    
            System.out.println("截取后的链表:");
            subList.print();
        }
    }
    
    1. 运行程序,输出结果如下:
    原链表:
    1 -> 2 -> 3 -> 4 -> 5
    截取后的链表:
    2 -> 3 -> 4
    

    以上就是如何在Java中对链表进行截取操作,并保留剩余部分作为新的链表输出的解决方案。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^