在Java中,传递数组作为参数主要有以下几种方式:
按值传递:
传递数组的副本,对副本的修改不会影响原始数组。
按引用传递:
传递数组的引用,对数组的修改会影响原始数组。
使用`varargs`:
允许传递任意数量的参数,参数类型相同。
使用数组类型作为参数:
指定固定长度的数组类型,表示一组相同类型的值。
使用包装类:
对于基本类型数组,使用其包装类(如`Integer[]`)传递。
下面是一些示例代码:
// 按值传递示例
public static void changeValue(int[] arr) {
arr = 99;
}
public static void main(String[] args) {
int[] arr = {5, 1, 3, 6, 4, 5, 6, 7, 8, 9};
System.out.println("传参前arr = " + arr);
changeValue(arr);
System.out.println("传参后arr = " + arr);
System.out.println("---");
// 按引用传递示例
String[] strArr = {"aa", "bb"};
System.out.println("传参前strArr = " + strArr);
changeValue(strArr);
System.out.println("传参后strArr = " + strArr);
System.out.println("---");
// 使用varargs示例
System.out.println("使用varargs传递int数组:");
int[] numbers = {1, 2, 3, 4, 5};
printArray(numbers);
printArray(1, 2, 3, 4, 5);
System.out.println("---");
// 使用数组类型作为参数示例
System.out.println("使用数组类型作为参数传递int数组:");
int[] numbers2 = {1, 2, 3, 4, 5};
printArray(numbers2);
System.out.println("---");
// 使用包装类示例
System.out.println("使用包装类传递int数组:");
Integer[] numbers3 = {1, 2, 3, 4, 5};
printArray(numbers3);
System.out.println("---");
}
public static void printArray(int... arr) {
for (int num : arr) {
System.out.print(num + " ");
}
System.out.println();
}
请注意,对于基本类型数组,传递引用(即按引用传递)会导致对数组的修改反映在原始数组中,而对于对象数组,传递副本(即按值传递)会导致对数组素的修改不会影响原始数组。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/111993.html