用的书:《Java从入门到精通》
day1(3.1-3.3): 【Java】从头开始的Java复健day1
day2(3.4-3.8): 【Java】从头开始的Java复健day2
day3(4.1-4.4): 【Java】从头开始的Java复健day3
day4(4.5-5.2): 【Java】从头开始的Java复健day4
day5(5.3-5.4): 【Java】从头开始的Java复健day5
day6(5.5-5.9): 【Java】从头开始的Java复健day6
第六章 数组
6.1 数组概述
数组是具有相同数据类型的一组数据的集合
6.2 一维数组的创建及使用
实质上就是一组相同类型数据的线性集合
创建一维数组
数组下标从0开始
-
先声明 再用new运算符进行内存分配
-
数组元素类型 数组名字[]
-
数组元素类型[] 数组名字
声明后不能立即访问 还需要分配内存空间 并且必须指明长度
数组名 = new 数组元素类型[数组元素的个数]
-
-
声明的同时为数组分配内存
-
数组元素类型 数组名字[] = new 数组元素类型[数组元素的个数]
-
数组元素类型[] 数组名字 = new 数组元素类型[数组元素的个数]
-
初始化一维数组
-
为数组分配内存也算一种初始化 现在所有元素默认为0
-
在new中初始化 eg
int arr[] = new int[]{1, 2, 3, 4};
-
省略new 直接初始化 eg
int arr[] = {1, 2, 3, 4};
数组长度一旦定义无法改变
使用一维数组
for循环遍历
public class Java6_1_2 {
public static void main(String[] args) {
//创建一维数组
//先声明 再用new运算符进行内存分配
int arr[];
int[] arr1;
arr = new int[3];
arr1 = new int[4];
// 声明的同时为数组分配内存
int arr2[] = new int[5];
// 初始化一维数组
int[] arr3 = new int[6];
System.out.println(arr3[0]);
int arr4[] = {1, 2, 3, 4};
// 使用一维数组
for (int i = 0; i<arr4.length; i++){
System.out.println(arr4[i]);
}
for (int i : arr4){
System.out.println(i);
}
}
}
6.3 二维数组的创建及使用
二维数组的创建
-
先声明 再用new运算符进行内存分配
-
数组元素类型 数组名字[][]
-
数组元素类型[][] 数组名字
对于高维数组 分配内存空间
-
直接为每一维分配内存 eg
a = new int[2][4]
-
分别为每一维分配内存 eg
a = new int[2][] a[0] = new int[2] a[1] = new int[3]
-
-
-
声明的同时为数组分配内存
二维数组初始化
eg int arr[][] = {{1, 2, 3}, {4, 5, 6}}
使用二维数组
public class Java6_3 {
public static void main(String[] args) {
int arr[][] = {{1, 2, 3}, {4, 5}};
for (int i=0; i<arr.length; i++){
for (int j=0; j<arr[i].length; j++){
System.out.println(arr[i][j]);
}
}
for (int[] i : arr){
for (int j : i){
System.out.println(j);
}
}
}
}
6.4 数组的基本操作
要用到Arrays类
import java.util.Arrays;
遍历数组
前两节谢过了两种方法
- for
- foreach
填充替换数组元素
-
Arrays.fill(int[] a, int value)
-
a 要进行元素替换的数组
-
value 要存储进数组的值
-
-
Arrays.fill(int[] a, int fromIndex, int toIndex, int value)
-
a 要进行元素替换的数组
-
fromIndex 要使用指定值填充的第一个元素的索引(包括)
-
toIndex 要使用指定值填充的最后一个元素的索引(不包括)
-
value 要存储进数组的值
-
对数组进行排序
Arrays.sort() 升序排序
若是String类型则是按照字典顺序升序
复制数组
-
Arrays.copyOf(arr, int newLength)
-
Arrays.copyOfRange(arr, int formIndex, int toIndex)
数组查询
Arrays.binarySearch用二分法搜索
使用之前必须进行排序
-
Arrays.binarySearch(Object[] a, Object key)
- a 要搜索的数组
- key 要搜索的值
- 返回索引
-
Arrays.binarySearch(Object[] a, int formIndex, int toIndex, Object key)
import java.util.Arrays;
public class Java6_4 {
public static void main(String[] args) {
// 填充替换数组元素
int arr[] = {1, 2, 3, 4, 5};
Arrays.fill(arr, 5);
for (int i : arr) {
System.out.print(i);
}
System.out.println("");
Arrays.fill(arr, 2, 3, 1);
for (int i : arr) {
System.out.print(i);
}
System.out.println("");
// 对数组进行排序
Arrays.sort(arr);
for (int i : arr) {
System.out.print(i);
}
System.out.println("");
// 复制数组
int newArr[] = Arrays.copyOf(arr, 10);
for (int i : newArr) {
System.out.print(i);
}
System.out.println("");
int newArr1[] = Arrays.copyOfRange(arr, 0, 3);
for (int i : newArr1) {
System.out.print(i);
}
System.out.println("");
// 数组搜索
System.out.println("1的索引为" + Arrays.binarySearch(arr, 1));
// 结果是2 因为会返回第一找到的key的索引 binarySearch是二分法 故第一个找的位置是正中间
System.out.println("1的索引为" + Arrays.binarySearch(arr, 5));
}
}
标签:复健,arr,Java,int,day7,Arrays,数组,new
From: https://www.cnblogs.com/ryukirin/p/17632136.html