静态初始化:int []=new int[]{3,1,6,5,4}或int []={3,1,6,5,4},int []=new int[2]
一、数组操作
1、获取数组中元素
遍历(for i=0;i<5;i++)print(arr[i]))
注意错误的是:Sys.out.println(arr);这样打印出来的是数组存放的地址。
2、获取数组中最大的值
思路:通过一个变量进行临时存储。
int max=arr[0];
3、对数组排序
无论是什么排序都要把代码置换位置,把这部分代码提取出来,单独封装成一个函数(传入数组)
(1)选择排序
a[0]与其后的数字进行比较,将两者中较小的一个储存到最前面;之后逐渐选出第二、第三最小的数值
(2)冒泡排序
相邻元素进行比较,符合条件换位(最大的肯定是最后位,下一次可以不用比较最后一个数值,因为其是最大的),逐渐选出最大的、次大的、第三大的依次放在后边,下次可不用比较
(3)shell排序
4、数组查找
(1)第一次出现位置:key,逐个比较
(2)折半:min,max,mid=(min+max)/2,在arr[mid]!=key,反复挑战min与max的位置,
public static int halfserach(int[] arr,int key)
{
int min=0;
int max=arr.length-1;
int mid=(min+max)/2;
while(arr[mid]!=key)
{
if(arr[mid]>key)
max=mid-1;
else if(arr[mid]<key)
min=mid+1;
else if(min>max)
return -1;
mid=(min+max)/2;
}
return mid; // 此处应该在while循环以外,循环里的mid是不停变化的,外圈的mid是最终的mid
}
5、进制转换
(1)十转二:(不断除二取余,利用StringBuffer对象,通过append函数依次添加,最后打印reverse版,即倒着打印)
(定义二进制表)
(2)十转十六:(不断地与15进行&运算,在>>4,反复进行)
(查表法)
二、数组中的数组——二维数组
int[][] arr=new int[3][4]
int[][] arr=new int[3][]——>sys("arr[1]")=null三个一维数组未进行初始化,数组为引用数据类型,默认是null
arr[0]=new int[3]——>初始化后,默认为0
0 | 0 | 0 |