数组就是能够存储同一种数据类型的容器
数组的定义 格式
1)数据类型[] 数组名称; (推荐第一种方式)
2)数据类型 数组名称[] ;
数组本身就属于引用数据类型,里面存储的元素内容, 可以方法同一种类型的基本类型元素或者同一类型的引用类型!
数组的初始化有两种方式:
第一种方式:动态初始化
第二种方式:静态初始化
//遍历
class ArrDemo{
public static void main(String[] args){
int[] arr={11,21,14,34,29};
printArray(arr);
}
public static void printArray(int[] array){
System.out.print("[");
for(int x=0;x<=array.length-1;x++){
if(x==array.length-1){
System.out.print(array[x]+"]");
}else{
System.out.print(array[x]+",");
}
}
}
}
动态初始化:
定数组的长度,数组的元素内容由系统默认初始化
默认初始化:系统给定的
根据我们数组中存储的数据类型来判定
创建数组的方式第二种是静态初始化
我们给定元素的内容,由系统来默认分配长度
格式:
(推荐)数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,元素3....} ;
数据类型 数组名称[] = new 数据类型[]{元素1,元素2,元素3....} ;
简化格式:推荐使用简写格式
数据类型[] 数组名称 = {元素1,元素2,元素3....} ;
数据类型 数组名称[] = {元素1,元素2,元素3....} ;
数组中常见的异常: 运行时期异常
1)数组角标越界异常---程序运行的时候出现异常
ArrayIndeexOutOfBoundsException 类名
出现这个异常原因:我们访问了数组中不存在的索引值报错!
解决方案: 改变索引值
2)实际开发中,经常会出现 空指针异常 NullPointerException
就是当前 我们在访问某个对象的时候,对象已经是null,
然后还要使用对象中的某个功能---出现空指针了
解决方案:
对当前这个对象进行非空判断
方法重载:---为了提供某个功能的扩展性
方法名相同,参数列表不同,与返回值无关!
参数列表不同: 1)参数个数不同 2)参数类型不同 3)考虑参数类型的顺序
//数组中最大、最小值
import java.util.Scanner;
class BiJiao{
public static void main(String[] args){
int[] arr=new int[5];
Scanner sc=new Scanner(System.in);
for(int n=0;n<arr.length;n++) {
System.out.println("请输入第"+(n+1)+"个元素:");
arr[n]=sc.nextInt();
}
int max=getArrayMax(arr);
int min=getArrayMin(arr);
System.out.println("最大值:"+max);
System.out.println("最小值:"+min);
}
public static int getArrayMax(int[] array){
int max = array[0] ;
for(int x =1 ; x < array.length ; x ++){
if(array[x] > max){
max = array[x] ;
}
}
return max ;
}
public static int getArrayMin(int[] array){
int min = array[0] ;
for(int x =1 ; x < array.length ; x ++){
if(array[x] < min){
min = array[x] ;
}
}
return min ;
}
}
数组中高级排序--冒泡
class ArrayDemo3{
public static void main(String[] args){
int[] arr = {12,32,56,66,34} ;
bubbleSort(arr) ;
printArray(arr) ;
}
public static void bubbleSort(int[] array){
for(int x = 0 ; x < array.length-1 ; x ++){
for(int y = 0 ; y < array.length-1-x ; y ++){
if(array[y] > array[y+1]){
int temp = array[y] ;
array[y] = array[y+1] ;
array[y+1] = temp ;
}
}
}
}
public static void printArray(int[] array){
System.out.print("[") ;
for(int x = 0 ; x < array.length ; x ++){
if(x == array.length-1){
System.out.println(array[x]+"]") ;
}else{
System.out.print(array[x]+", ") ;
}
}
}
}