以下程序执行后输出结果应为( )。 public class Foo{ public static void main(String[] args){ String s = "abc"; Integer i = 12; change(s, i); System.out.println(s + i); } static void change(String str, Integer a){ str += "def"; a += 10; } }
时间: 2024-02-14 07:14:36 浏览: 62
程序执行后输出结果应为:abc12。原因是Java中的String是不可变对象,所以在change方法中修改了str的值,但是并没有对原来的s对象进行修改。而Integer是可变对象,但是它是通过装箱(autoboxing)机制进行转换的,所以在change方法中对a进行的修改也不会影响原来的i对象,因此最终输出结果是abc12。
相关问题
一个字符串数组{“abc”,”de”,”gong”,”De”,”abc”,”Foo”,”gong”}, 请将其中重复的元素去除掉,并排序后输出。(提示:使用HashSet去重)
好的,我来解答你的问题。
你可以使用HashSet来去重,然后将结果转换为数组并进行排序。具体实现如下:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
String[] arr = {"abc", "de", "gong", "De", "abc", "Foo", "gong"};
Set<String> set = new HashSet<>(Arrays.asList(arr)); // 使用HashSet去重
String[] resultArr = set.toArray(new String[set.size()]); // 转换为数组
Arrays.sort(resultArr); // 排序
System.out.println(Arrays.toString(resultArr)); // 输出结果
}
}
```
输出结果为:
```
[De, Foo, abc, de, gong]
```
需要注意的是,这里区分大小写,因此大小写不同的元素也会被保留。如果不区分大小写,可以将所有元素转换为小写或大写再进行去重和排序。
阅读全文