黑马程序员技术交流社区
标题: Jav13期基础知识——数组 [打印本页]
作者: Refrain13 时间: 2018-4-17 23:08
标题: Jav13期基础知识——数组
4月初来到黑马,转眼半个月的基础班学习即将结束。下面总结了一些关于数组的基本知识。
概念
数组是Java语言的基本知识之一,是存储同一种数据类型的多个元素的容器。
定义格式及初始化定义格式
a.数据类型[] 数组名;int[] arr 这种方式用的比较多
b .数据类型 数组名[]; int arr[]
推荐用a方式,但是b方式要看得懂
解释:a是定义一个int类型的数组,数组名是arr
b是定一个int类型的变量,变量名arr[ ]数组
数组的初始化
a、动态初始化
只给长度,系统会给出默认值
举例: int[] arr = new int[3];
b、静态初始化
给出值,系统决定长度
举例:int[] arr =new int[] {1,2,3};
简化 int[] = {1,2,3};
总结:所谓数组初始化,就是为数组开辟内存空间,并为
数组的每个元素赋予初始值。
new:在右边为数组申请内存分配开辟空间
使用数组容易发生的问题 A:ArryIndeoutofboundsExcption:数组索引越界异常
原因:你访问了不存在的索引,超过其数组长度了
B:NullPointerException:空指针异常
arr =null
System.out.println(arr[0]);
原因:数组已经不在指向堆内存了,而你还用数组名访
问元素。
数组长度属性为了解决我们去解决数组元素的个数,数组就提供了一个属性:length
用于获取数组元素的个数
格式:数组名.length
int[] arr;
System.out.println("数组共有"+"arr.length"+"个")
数组中的遍历、最值、逆序、基本查找遍历:方式1:
public static void printArray(int[] arr) {
for(int x=0; x<arr.length; x++) {
System.out.println(arr[x]);
}
}
方式2:
public static void printArray(int[] arr) {
System.out.print("[");
for(int x=0; x<arr.length; x++) {
if(x == arr.length-1) {
System.out.println(arr[x]+"]");
}else {
System.out.println(arr[x]+", ");
}
}
}
注释:方式2美观些 注意最后结尾的判断条件
最值:最大值:
public static int getMax(int[] arr) {
int max = arr[0];
for(int x=1; x<arr.length; x++) {
if(arr[x] > max) {
max = arr[x];
}
}
return max;
}
最小值:
public static int getMin(int[] arr) {
int min = arr[0];
for(int x=1; x<arr.length; x++) {
if(arr[x] < min) {
min = arr[x];
}
}
return min;
}
逆序方式1:
public static void reverse(int[] arr) {
for(int x=0; x<arr.length/2; x++) {
int temp = arr[x];
arr[x] = arr[arr.length-1-x];
arr[arr.length-1-x] = temp;
}
}
方式2:
public static void reverse(int[] arr) {
for(int start=0,end=arr.length-1; start<=end; start++,end--) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
}
}
基本查找方式1:
public static int getIndex(int[] arr,int value) {
for(int x=0; x<arr.length; x++) {
if(arr[x] == value) {
return x;
}
}
return -1;/数组中无此元素
}
方式2:
public static int getIndex(int[] arr,int value) {
int index = -1;
for(int x=0; x<arr.length; x++) {
if(arr[x] == value) {
index = x;
break;
}
}
return index;
}
作者: cj1234 时间: 2018-4-18 14:41
学到了,谢谢大佬
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |