增强型for 循环
1 public class HelloWorld { 2 public static void main(String[] args) { 3 int values [] = new int[]{18,62,68,82,65,9}; 4 //常规遍历 5 for (int i = 0; i < values.length; i++) { 6 int each = values[i]; 7 System.out.println(each); 8 } 9 10 //增强型for循环遍历 11 for (int each : values) { 12 System.out.println(each); 13 }
增强型for循环只能取值,不能修改元素的值。
预留作业:
用增强型for循环找出最大的那个数
复制数组
把一个数组的值,复制到另一个数组。
src 源数组 srcPos 原数组的首位 dest 目标数组
destPos: 复制到目标数组的起始位置
length: 复制的长度
public class HelloWorld { public static void main(String[] args) { int a [] = new int[]{18,62,68,82,65,9}; int b[] = new int[3];//分配了长度是3的空间,但是没有赋值 //通过数组赋值把,a数组的前3位赋值到b数组 //方法一: for循环 for (int i = 0; i < b.length; i++)
{ b[i] = a[i]; } //方法二: System.arraycopy(src, srcPos, dest, destPos, length) System.arraycopy(a, 0, b, 0, 3);
//把内容打印出来 for (int i = 0; i < b.length; i++)
{ System.out.print(b[i] + " "); }
}
使用增强型for循环打印
for (int each : b) { System.out.println(each); }
}
预留练习:
首先准备两个数组,他俩的长度是5-10之间的随机数,并使用随机数初始化这两个数组
然后准备第三个数组,第三个数组的长度是前两个的和
通过System.arraycopy 把前两个数组合并到第三个数组中
二维数组
初始化二维数组
public class HelloWorld { public static void main(String[] args) { //初始化二维数组, int[][] a = new int[2][3]; //有两个一维数组,每个一维数组的长度是3 a[1][2] = 5; //可以直接访问一维数组,因为已经分配了空间 //只分配了二维数组 int[][] b = new int[2][]; //有两个一维数组,每个一维数组的长度暂未分配 b[0] =new int[3]; //必须事先分配长度,才可以访问 b[0][2] = 5; //指定内容的同时,分配空间 int[][] c = new int[][]{ {1,2,4}, {4,5}, {6,7,8,9} }; } }
练习:
定义一个5X5的二维数组。 然后使用随机数填充该二维数组。
找出这个二维数组里,最大的那个值,并打印出其二维坐标。
数组array 类:
Arrays是针对数组的工具类,可以进行 排序,查找,复制填充等功能。 大大提高了开发人员的工作效率。
copyOfRange()
toString()
sort
binarySearch
equals
fill
复制数组
import java.util.Arrays; public class HelloWorld { public static void main(String[] args) { int a[] = new int[] { 18, 62, 68, 82, 65, 9 }; // copyOfRange(int[] original, int from, int to) // 第一个参数表示源数组 // 第二个参数表示开始位置(取得到) // 第三个参数表示结束位置(取不到) int[] b = Arrays.copyOfRange(a, 0, 3); for (int i = 0; i < b.length; i++) { System.out.print(b[i] + " "); } } }
数组转化为字符串:
import java.util.Arrays; public class HelloWorld { public static void main(String[] args) { int a[] = new int[] { 18, 62, 68, 82, 65, 9 }; String content = Arrays.toString(a); System.out.println(content); } }
字符串转数组
public static void main(String[] args) { // TODO Auto-generated method stub // 将字符数组转为字符串 // 方法一 char[] data = { 'a', 'b', 'c' };// 字符数组 String str = new String(data); System.out.println(str); // 方法二 String str1 = String.valueOf(data); System.out.println(str1); // 将字符串转为字符串数组 // 方法一 String string = "abc,def,ghi"; String[] strArr = string.split(",");//注意分隔符是需要转译 for (int i = 0; i < strArr.length; i++) { System.out.println(strArr[i]); } // 方法二 String string1 = "abcdefghijk"; char[] strArr1 = string1.toCharArray(); for (int i = 0; i < strArr1.length; i++) { System.out.println(strArr1[i]); } }
排序:
import java.util.Arrays; public class HelloWorld { public static void main(String[] args) { int a[] = new int[] { 18, 62, 68, 82, 65, 9 }; System.out.println("排序之前 :"); System.out.println(Arrays.toString(a)); Arrays.sort(a); System.out.println("排序之后:"); System.out.println(Arrays.toString(a)); } }
搜索:
进行搜索之前要先排序,sort
import java.util.Arrays; public class HelloWorld { public static void main(String[] args) { int a[] = new int[] { 18, 62, 68, 82, 65, 9 }; Arrays.sort(a); System.out.println(Arrays.toString(a)); //使用binarySearch之前,必须先使用sort进行排序 System.out.println("数字 62出现的位置:"+Arrays.binarySearch(a, 62)); } }
判断元素
import java.util.Arrays; public class HelloWorld { public static void main(String[] args) { int a[] = new int[] { 18, 62, 68, 82, 65, 9 }; int b[] = new int[] { 18, 62, 68, 82, 65, 8 }; System.out.println(Arrays.equals(a, b)); } }
填充元素:
import java.util.Arrays;
public class HelloWorld {
public static void main(String[] args) {
int a[] = new int[10];
Arrays.fill(a, 5);
System.out.println(Arrays.toString(a));
}
}
预留练习二维数组排序: