【自学笔记】 Java基础 - 数组的常用方法和注意事项
# 数组的常用方法和注意事项```Java
public class ArrayOne {
public static void main(String[] args) {
int[] array = new int; //动态初始化
System.out.println(array); //地址值
System.out.println(array);//0
System.out.println(array);//0
System.out.println(array);//0
//改变数组当中元素的内容
array = 10;
array = 20;
System.out.println(array); //地址值
System.out.println(array);//0
System.out.println(array);//10
System.out.println(array);//20
}
}
```
## 遍历数组
概念:
说的就是对数组中的每一个元素进行逐一处理。默认的处理方式就是打印。
```Java
public class Array {
public static void main(String[] args) {
int[] array = {1,2,3,4,5};
for(int i = 0;i<array.length;i++){
System.out.println(array);
}
}
}
```
## 注意事项
越界异常:
如果访问数组元素的时候,索引编号并不存在,那么将会发生数组索引越界异常:
ArrayIndexOutOfBoundsException
原因:索引编号写错了
解决:修改成为存在的正确索引编号
空指针异常:
所以的引用类型变量,都可以赋值为一个null值,但是表示其中什么都没有。组必须进行 new初始化才能使用其中的元素如果只是赋值一个null,没有j进行new创建。那么将会发生。空指针异常 NullPointerException
原因:忘了new
解决:补上new
## 数组的常用方法
### 获取数组的长度
public int length()
格式:
数组名称.length
这将会得到一个int数字 这代表数组长度
数组一旦创建,程序运行期间,长度不可改变
### 填充替换数组
public static void fill(int[] a, int value)
参数:
a:要进行替换的数组
value:要存储数组种所以元素的值
```Java
public class Array {
public static void main(String[] args) {
int[] array = new int;
Arrays.fill(array,1)
for(int i = 0;i<array.length;i++){
System.out.println(array);// 1
}
}
}
```
public static void fill(int[] a,int form,int to, int value)
参数:
a:要进行替换的数组
form:指定填充的第一个索引值(包括)
to:直到填充的最好一个索引值(不包括)
value:要存储数组种所以元素的值
### 数组查询
public static int binarySearch(byte[] a,byte key)
参数:
a:要搜索的数组
key:要搜索的值
结果
搜索键的索引,如果它包含在数组中; 否则, (-(插入点)或 - 1) 。如果阵列中的所有元素都小于指定键的第一元件比所述键时,或a.length的索引: 插入点被定义为将键插入到阵列的点。 请注意,这确保当且仅当找到该键时返回值将为> = 0。
注意:使用二进制搜索算法搜索指定值的指定字节数组。 在进行此调用之前,数组必须按照sort(byte[])方法进行排序。 如果没有排序,结果是未定义的。 如果数组包含具有指定值的多个元素,则不能保证将找到哪个元素。
```Java
public class Array {
public static void main(String[] args) {
int[] array = new int[]{1,5,4,3,2};
Arrays.sort(array)
int index = Arrays.binarySearch(array,4)
System.out.println(index);// 3
}
}
```
### 排序
public static void sort(数组):按照默认升序对数组的元素进行排序。
备注:
1.如果时数组,sort默认按照升序从小到大
2.如果时字符串,sort默认按照字母升序
3.如果时自定义类型,那么这个自定义的类需要有Comparable或者Comparator接口的支持。
```Java
public class Demo1Arrays {
public static void main(String[] args) {
//排序
int array1 = {2,1,4,8,6,7};
Arrays.sort(array1);
System.out.println(Arrays.toString(array1));
String[] array2 = {"aaa","bbb","ccc"};
Arrays.sort(array2);
System.out.println(Arrays.toString(array2));
}
}
```
### 转字符串
public static String toString(数组)
将参数数组变成字符串(按照默认格式:[元素一,元素二,....])
```Java
public class Demo1Arrays {
public static void main(String[] args) {
int[] intArrays = {10,20,30};
//将int数组按照默认格式变成字符串
String intStr = Arrays.toString(intArrays);
System.out.println(intStr);//
}
}
```
## 数组的基本操作
### 数组最值:
```Java
public class Array {
public static void main(String[] args) {
int[] array = {5 , 15 , 30 , 20 , 10000};
int max = array
for(int i = 1;i < array.length;i++ ){
//如果当前元素,比max更大则换数字
if(array > max){
max = array;
}
}
}
}
```
### 数组元素反转:
概念:
对称位置的元素交换
```Java
public class ArrayReverse {
public static void main(String[] args) {
int[] array = {10 , 20 , 30 , 40 , 50};
for(int min = 0, max = array.length-1;min < max ; min++ , max--) {
int temp = array;
array = array;
array = temp;
}
}
}
``` 努力学习,天天向上{:1_901:}
页:
[1]