- Java数据类型简介
- 原始数据类型
- 包装
- 使用
- 字符串
- 数组
Java数组参数
数组参数
可以将数组作为参数传递给方法或构造函数。传递给该方法的数组的类型必须是与形式参数类型兼容的赋值(即,形参和实参的数组类型要一样。
以下代码显示了如何将数组作为方法参数传递 -
public class Main { public static void main(String[] args) { int[] num = { 1, 2 }; System.out.println("Before swap"); System.out.println("#1: " + num[0]); System.out.println("#2: " + num[1]); swap(num); System.out.println("After swap"); System.out.println("#1: " + num[0]); System.out.println("#2: " + num[1]); } public static void swap(int[] source) { if (source != null && source.length == 2) { // Swap the first and the second elements int temp = source[0]; source[0] = source[1]; source[1] = temp; } } }
上面的代码生成以下结果。
Before swap #1: 1 #2: 2 After swap #1: 2 #2: 1
数组参数引用
因为数组是一个对象,所以它的引用副本可传递给一个方法。如果方法更改数组参数,实际参数不受影响。
import java.util.Arrays; public class Main { public static void main(String[] args) { int[] origNum = { 1, 2, 3 }; System.out.println("Before method call:" + Arrays.toString(origNum)); // Pass the array to the method tryArrayChange(origNum); System.out.println("After method call:" + Arrays.toString(origNum)); } public static void tryArrayChange(int[] num) { System.out.println("Inside method-1:" + Arrays.toString(num)); // Create and store a new int array in num num = new int[] { 10, 20 }; System.out.println("Inside method?2:" + Arrays.toString(num)); } }
上面的代码生成以下结果。
Before method call:[1, 2, 3] Inside method-1:[1, 2, 3] Inside method?2:[10, 20] After method call:[1, 2, 3]
数组的元素参数
存储在数组参数中的元素的值在方法中可始终更改。以下代码显示了如何在方法中更改数组参数的元素值。
import java.util.Arrays; public class Main { public static void main(String[] args) { int[] origNum = { 1, 2, 3 }; String[] origNames = { "Java", "SQL" }; System.out.println("Before method call, origNum:" + Arrays.toString(origNum)); System.out.println("Before method call, origNames:" + Arrays.toString(origNames)); // Call methods passing the arrays tryElementChange(origNum); tryElementChange(origNames); System.out.println("After method call, origNum:" + Arrays.toString(origNum)); System.out.println("After method call, origNames:" + Arrays.toString(origNames)); } public static void tryElementChange(int[] num) { if (num != null && num.length > 0) { num[0] = -1; } } public static void tryElementChange(String[] names) { if (names != null && names.length > 0) { names[0] = "T"; } } }
上面的代码生成以下结果。
Before method call, origNum:[1, 2, 3] Before method call, origNames:[Java, SQL] After method call, origNum:[-1, 2, 3] After method call, origNames:[T, SQL]
示例
以下代码显示如何更改对象数组元素。
class Item { private double price; private String name; public Item(String name, double initialPrice) { this.name = name; this.price = initialPrice; } public double getPrice() { return this.price; } public void setPrice(double newPrice) { this.price = newPrice; } public String toString() { return "[" + this.name + ", " + this.price + "]"; } } public class Main { public static void main(String[] args) { Item[] myItems = { new Item("Pen", 2.11), new Item("Pencil", 0.10) }; System.out.println("Before method call #1:" + myItems[0]); System.out.println("Before method call #2:" + myItems[1]); // Call the method passing the array of Item tryStateChange(myItems); System.out.println("After method call #1:" + myItems[0]); System.out.println("After method call #2:" + myItems[1]); } public static void tryStateChange(Item[] allItems) { if (allItems != null && allItems.length > 0) { allItems[0].setPrice(0.38); } } }
上面的代码生成以下结果。
Before method call #1:[Pen, 2.11] Before method call #2:[Pencil, 0.1] After method call #1:[Pen, 0.38] After method call #2:[Pencil, 0.1]
上一篇:Java可变长度数组
下一篇:Java多维数组
分类导航
- Java教程
- Vim教程
- Swing教程
- Spring教程
- Spring Web Services教程
- Spring MVC教程
- Spring JDBC教程
- Spring Cloud教程
- Spring Boot教程
- Spring Boot CLI教程
- Spring Batch教程
- Spring AOP教程
- PDFBox教程
- JSP教程
- JSF教程
- JPA教程
- Java面向对象设计
- Java设计模式
- Java虚拟机教程
- Java泛型教程
- Java正则表达式教程
- Java数据类型教程
- Java并发编程教程
- Java密码学教程
- Java多线程教程
- Java国际化(i18n)教程
- JavaFX教程
- Java9教程
关注微信小程序
扫描二维码
程序员编程王