Java 基础知识(五 )

第五章 Java语言基础数组详解
一.数组的定义
1) 概念:同一类型数据的集合。其实就是容器。
格式:元素类型 [ ] 数组名 = new 元素类型 [ 元素个数或数组长度 ] ; 元素类型 [ ] 数组名 = new 元素类型[ ]{}
示例 : int [ ] hu = new int [ 3 ] hu[ 0 ]= 88;
2) 数组的好处 :可以自动给数组的元素从0开始编号,方便操作这些元素。
二.数组的内存结构
1)内存的划分
1) 寄存器(CPU); 2)本地方法区(本地系统); 3)方法区(); 4) 栈内存(); 5)堆内存();
注意: 栈内存:存储都是局部变量而且变量所属的作用域一旦结束,该变量被自动释放。
堆内存:存储是数组和对象(其实数组就是对象) 凡是new建立在堆中。
1) 每一个实体都有首地址值
2) 堆内存中的每一个都有默认初始化值根据类型的不同而不同。整数是0, 小数是0.0或0.0f boolean false char“\u0000”null
数组内存结构图
这里写图片描述
三.数组的使用
格式1: 需要一个容器, 但是不明确容器的具体数值 例如:int [ ] arr = new int [ 3 ]
格式2:需要一个容器,储存已知的具体参数数据。 例如:int [ ] arr = new int [ ] { 1,} 或 int [ ] arr = { 1};
对数组的最基本操作就是存和取
核心思想:就是对对角标的操作
例题1 int [] arr ={ 89 ,89,29,200};
System.out.println(arr[2]);
}
例题2 package Tigerzixueji.shuzu
/**
*/
public class shuzu2 {
public static void main(String[] args) {
//对数组操作最基本的动作就是存取
//核心思想就是对角标的操作
int[] arr = {89, 89, 29, 200};
System.out.println(arr.length);
for (int x = 0; x < 4; x++) {
System.out.println(“arr[“+x+”]=”+arr[x]+”;”);
}
}
}
注意:数组中常见的问题有
数组脚标越界异常: 例如, int [ ] arr = new int [ 2 ]; System.out.println(arr [ 3 ]);会报错,访问到数组不存在的脚标
空指针异常: 例如, int [ ] arr = null ; System.out.println( arr[ 0 ] ); arr引用没有指向实体,却在操作实体元素是

   四.数组的常见操作
    1)获取最值(最大值 ,最小值)

例题1:求数组中的最大值
需求:求最大值 ; 结果是什么? 最值也就是数组中某个具体的元素(int) 需要给什么参数类型?数组
public class shuzu {
public static void main(String[] args) {
int [] b ={334,90,67,9475,789,3840,243,35,-90};
int [] a ={-234,-1,-4,-90,-485,-769,-4869,-759};
System.out.println(zuida(a));
System.out.println(zuida1(a));
System.out.println(zuida2(b));
}
public static int zuida(int [] a){//方法一
int zuida = 0;
for( int x = 0 ; x< a.length; x++){
if(a[x]>zuida){
zuida=a[x];
}
}
return zuida;
}
public static int zuida1(int [] a){//方法二 是方法的补充
int zuida = a[0];
for( int x = 1 ; x< a.length; x++){
if(a[x]>zuida){
zuida=a[x];
}
}
return zuida;
}
public static int zuida2(int [] a){//方法三
int zuida = 0;
for( int x = 1; x< a.length; x++){
if(a[x]>a[zuida]){//注意 这里是 a数组中的每一个元素
zuida=x;//重新给最大这个变量 赋值 (就是 a的数组元素)
}
}
return a[zuida];
}

}
2)数组中的元素 排序
1)选择排序图解
这里写图片描述
例题1:public class shuzu1 {
public static void main(String[] args) {
int [] a={2,4,5,76,7,0,7,6};
paixu1(a);
paixu(a);
System.out.println();
paixu1(a);
}
public static void paixu(int [] a){//选择排序的功能
for (int x =0;x< a.length-1 ;x++){
for (int y=x+1; y

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值