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条)

报告相同问题?

悬赏问题

  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本