数组:一组相关变量的集合,按照数组的使用可分为一维数组、二维数组
定义:int [ ] attr。
使用java数组分为两步,声明数组和分配内存给该数组。
int [ ] attr=new int [6];// int 整形数组 int,数组名attr, new 动态开辟 int[6],数组大小为6,里面存放6个元素,下标0-5。
实例
public class Test {
public static void main(String[] args) {
int attr[]=null;//声明数组
attr=new int[5];//开辟空间,大小为5
}
}
数据类型是数组元素的类型,常见的数据类型有整形,浮点型,字符型。
数组名用来同一该数据类型元素的名称,命名规则与变量相同。
数组声明后该数组名保存在栈内存里
new出来的对象(数组)存在堆内存中。
在数组操作中,栈内存里保存的是数组名,只开辟了栈内存数组是无法使用的,同时堆内存空间是可以同时被多个栈内存空间指向的,好不如人可以有多个称呼,人就相当于堆内存,称呼就相当于栈内存。
堆内存每一个局部变量都有一个默认的初始值,根据类型不同,初始值也不同,例如int型的是0;float型的是0.0f\0.0,boolean型的是false。堆内存中的垃圾系统会不定时自定垃圾回收。
数组的访问
想要访问数组中的元素可以利用索引来访问,如int[0]代表以一个元素,以此类推。
数组的初始化可以使通过静态初始化和动态初始化,所谓的静态初始化是指在数组声明后直接为数组指定具体内容,动态初始化时通过new出来的。
length表示数组的长度。
求出数组中的最大值和最小值
package SString;
public class Arraytest {
public static void main(String[] args) {
int num[]={32,25,12,51,25};
int max=0;
int min=0;
min=max=num[0];
for(int i=0;i<num.length;i++){
if(num[i]>max){
max=num[i];
}
if(num[i]<min){
min=num[i];
}
}
System.out.println("max:"+max);
System.out.println("min:"+min);
}
}
用冒泡法进行排序
public class attrr {
/**
* @param args
*/
public static void main(String[] args) {
int [] nums = {216,25,58,654,545};
for(int i=0;i<nums.length-1;i++){//外层循环,控制比较的轮数
for(int j=0;j<nums.length-1-i;j++){//内层循环,控制每轮比较的次数
if(nums[j]<nums[j+1]){//相邻的两元素进行比较,满足条件交换位置
int temp=nums[j];
nums[j]=nums[j+1];
nums[j+1]=temp;
}
}
}
for(int i=0;i<nums.length;i++){
System.out.print(nums[i]+" ");
}
}
}