DeSt!ny 2021-02-13 20:02 采纳率: 100%
浏览 56
已采纳

JAVA形参影响了实参吗?

public class List203 {

    public static class ListNode {

        int val;
        ListNode next;
        ListNode() {}
        ListNode(int val) { this.val = val; }
        ListNode(int val, ListNode next) { this.val = val; this.next = next; }
        public void add(int newval) {
            ListNode newNode = new ListNode(newval);
            if(this.next == null)
                this.next = newNode;
            else
                this.next.add(newval);
        }
        public void iterate(ListNode head){
            if (head == null){
                System.out.print("This list is NULL");
            } else {
                while (head != null){
                    System.out.print(head.val + " ");
                    head = head.next;
                }
                System.out.println(" ");
            }
        }
    }
    public static ListNode removeElements(ListNode head,int val){
        ListNode dummy = new ListNode(0);
        dummy.next = head;
        ListNode prev = dummy;
        while (head != null){
            if (head.val == val){
                prev.next = head.next;
            } else {
                prev = head;
            }
            head = head.next;
        }
        return dummy.next;
    }

    public static void main(String[] args) {
        ListNode node = new ListNode(0);
        node.add(1);
        node.add(1);
        node.add(2);
        node.add(3);
        node.add(4);
        node.add(5);
        node.add(6);
        
        node.iterate(node);
        ListNode newnode = removeElements(node, 1);
        node.iterate(node);
        node.iterate(newnode);
    }
}

如上代码,我在JAVA中实现了一个链表,然后调用去除链表中元素的函数,然后打印调用前和调用后的链表,结果以node为头结点的链表发生了变化,难道不是应该不变吗? 新人不太懂,求解答。

  • 写回答

2条回答 默认 最新

  • 农夫丶果园 2021-02-15 09:48
    关注

    对象和基本类型是不一样的,你传入对象的引用,并用这个引用改变了对象的信息,那么你再拿一个引用去指向这个对象时得到的就是改变后的对象信息。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥65 LineageOs-21.0系统编译问题
  • ¥30 关于#c++#的问题,请各位专家解答!
  • ¥15 App的会员连续扣费
  • ¥15 不同数据类型的特征融合应该怎么做
  • ¥15 用proteus软件设计一个基于8086微处理器的简易温度计
  • ¥15 用联想小新14Pro
  • ¥15 multisim中关于74ls192n和DSWPK开关仿真图分析(减法计数器)
  • ¥15 w3wp,exe 中发生未处理的 Microsoft ,NETFramework 异常。
  • ¥20 C51单片机程序及仿真(加减器)
  • ¥15 AQWA | 水动力分析 二阶波浪力