操作数组的方法:
- public static String toString(int[] a) :返回指定数组内容的字符串表示形式。
public static void main(String[] args) { // 定义int 数组 int[] arr = {2,34,35,4,657,8,69,9}; // 打印数组,输出地址值 System.out.println(arr); // [I@2ac1fdc4 // 数组内容转为字符串 String s = Arrays.toString(arr); // 打印字符串,输出内容 System.out.println(s); // [2, 34, 35, 4, 657, 8, 69, 9] }
- public static void sort(int[] a) :对指定的 int 型数组按数字升序进行排序。
public static void main(String[] args) { // 定义int 数组 int[] arr = {24, 7, 5, 48, 4, 46, 35, 11, 6, 2};
System.out.println("排序前:"+ Arrays.toString(arr));// 排序前:[24, 7, 5, 48, 4, 46, 35, 11, 6, 2] // 升序排序 Arrays.sort(arr); System.out.println("排序后:"+ Arrays.toString(arr));// 排序后:[2, 4, 5, 6, 7, 11, 24, 35, 46, 48] }
练习:请使用 Arrays 相关的API,将一个随机字符串中的所有字符升序排列,并倒序打印。
public static void main(String[] args) { // 定义随机的字符串 String line = "ysKUreaytWTRHsgFdSAoidq"; // 转换为字符数组
char[] chars = line.toCharArray();
// 升序排序
Arrays.sort(chars); // 反向遍历打印 for (int i = chars.length‐1; i >= 0 ; i‐‐) {
System.out.print(chars[i]+" "); // y y t s s r q o i g e d d a W U T S R K H F A } }
数组的反转: 数组中的元素颠倒顺序,例如原始数组为1,2,3,4,5,反转后的数组为5,4,3,2,1
实现思想:数组最远端的元素互换位置。
实现反转,就需要将数组最远端元素位置交换
定义两个变量,保存数组的最小索引和最大索引
两个索引上的元素交换位置
最小索引++,最大索引--,再次交换位置
最小索引超过了最大索引,数组反转操作结束
public static void main(String[] args) { int[] arr = { 1, 2, 3, 4, 5 }; /* * 循环中定义变量 * min=0最小索引 * max=arr.length‐1最大索引 * min++,max‐‐
*/ for (int min = 0, max = arr.length-1; min <= max; min++,max--) { //利用第三方变量完成数组中的元素交换 int temp = arr[min]; arr[min] = arr[max]; arr[max] = temp; } // 反转后,遍历数组 for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } }
分析下列程序代码,计算输出结果。
//1. 分析下列程序代码,计算输出结果。
public class modelTest { public static void main(String[] args) { int a = 1; int b = 2; System.out.println(a); System.out.println(b); change(a, b); System.out.println(a); System.out.println(b); } public static void change(int a, int b) { a = a + b; // b = b + a; // } }
2. 分析下列程序代码,计算输出结果。
public static void main(String[] args) { int[] arr = {1,3,5}; System.out.println(arr[0]); change(arr); System.out.println(arr[0]); } public static void change(int[] arr) { arr[0] = 200; }
总结:
方法的参数为基本类型时,传递的是数据值. 方法的参数为引用类型时,传递的是地址值.
1.的结果是:1 2 1 2
2.的结果是:1 200