java - 使用方法更改链接列表

标签 java

我认为该方法不能直接更改java中的对象,但据我所知我错了。

           public static void main(String[] args) {

             LinkedList<Integer> list = new LinkedList<>();
             String name = "Boycie";

                add(5, list);
                add(2, list);
                add(3, list);

                for(Integer integer:list){
                    System.out.print(integer + " ");
                }

                toUpperCase(name);
                System.out.println(name);
            }

            public static void add(int number, LinkedList<Integer> list){
                list.add(number);
            }
            public static void toUpperCase(String name){
                name.toUpperCase();
            }

有人能解释一下为什么该方法适用于链接列表,但不适用于字符串对象吗?我认为它也不适用于列表,并且我需要有一个返回类型 LinkedList 的方法,就像我对 String 所做的那样。

最佳答案

Java 中的字符串是不可变的,因此对字符串的所有操作都会返回一个新副本。

因此您可以执行以下操作来获得您期望的结果:

    LinkedList<Integer> list = new LinkedList<>();
    String name = "Boycie";

    add(5, list);
    add(2, list);
    add(3, list);
    for (Integer integer : list) {
        System.out.print(integer + " ");
    }
    String newName = toUpperCase(name);
    System.out.println(name);
    System.out.println(newName);
}

public static void add(int number, LinkedList<Integer> list) {
    list.add(number);
}

public static String toUpperCase(String name) {
    return name.toUpperCase();
}

关于java - 使用方法更改链接列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41633221/

相关文章:

java - 替代 Java 中的 Web 服务

java - Zebra GK420d ZPL 打印机通过 USB 在 Java 中的状态

java - 如果启用了 proguard,如何获取类字段?

java - 泛型类继承

java - 使用 final 方法初始化实例变量

java - 正则表达式: match everything up to an optional capture group

java - 为什么接口(interface)的属性在类中声明

java - Android 上的 SMB 服务器(非默认端口)

java向Mysql数据库中插入数据

java - Maven启动的java进程在Windows上无法通过Ctrl+C停止的原因