A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Refrain13 初级黑马   /  2018-4-17 23:08  /  1924 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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:数组索引越界异常
                原因:你访问了不存在的索引,超过其数组长度了
        BNullPointerException:空指针异常
                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;
}

1 个回复

倒序浏览
学到了,谢谢大佬
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马