数组
就是一块连续的内存空间
数组的数据存放在堆中,堆中数据会自动初始化,变量地址映射表和堆的关系
int []array=new int[12]; //空间大小为12*4=48个字节
在方法里面的变量叫局部变量,局部变量一定要初始化
遍历
将数组所有内容都看一下
查看这块内存的数据
public static void main(String[] args) {
int []array=new int[100];
//存进去
for(int i=0;i<100;i++) {
if(i%2==0) {
array[i]=i;
}
}
//取出来
for(int i=0;i<array.length;i++) {
System.out.println(array[i]);
}
}
随机数组的简单操作
最大值、最小值
public static void KK() {
Random r=new Random();
int num=r.nextInt(100);
int[] array=new int[20];
for(int i=1;i<array.length;i++) {
System.out.println(array[i]);
}
//最大值
int x=0;
for(int i=0;i<array.length;i++) {
if(x<array[i]) {
x=array[i];
}
}
System.out.println(x);
//最小值
int y=0;
for(int i=0;i<array.length;i++) {
if(y>array[i]) {
y=array[i];
}
}
System.out.println(y);
}
查找
public static void main(String[] args) {
int []array=new int[10];
for(int i=0;i<array.length ;i++) {
if(array[i]==0) {
System.out.println(i);
}
}
}
二分查找(折半查找)
必须是有序的数组
查找效率高
排序
冒泡排序
public static void main(String[] args) {
int []array=new int[10];
//小的上浮,大的下沉
for(int i=0;i<array.length ;i++) {
for(int j=0;j<array.length-i-1;j++) {
if(array[j]>array[j+1]){
int c=array[j];
array[j]=array[j+1];
array[j+1]=c;
}
}
}
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
}
sort方法排序
public static void main(String[] args) {
Random r=new Random();
int []array=new int[10];
for(int i=0;i<array.length ;i++) {
array[i]=r.nextInt(100);
}
Arrays.sort(array);
for(int i=0;i<array.length;i++) {
System.out.println(array[i]);
}
}
倒置
public static void main(String[] args) {
Random r=new Random();
int []array=new int[10];
for(int i=0;i<array.length ;i++) {
array[i]=r.nextInt(100);
}
//第一种 重新构建一个数组
int []array2=new int[array.length];
for(int i=0;i<array2.length;i++) {
array2[i]=array[array.length-i-1];
System.out.println(array2[i]);
}
//第二种
int j=0;
for(int i=0;i<array.length/2;i++) {
int c=array[i];
array[i]=array[array.length-i-1];
array[array.length-i-1]=c;
}
for(int i=0;i<array.length;i++) {
System.out.println(array[i]);
}
}