---------------------- android培训 、 java培训 、 期待与您交流!----------------------
一、数组的格式:
格式1:元素类型 [] 数组名 = new 元素类型[元素个数或数组的长度]
格式2:元素类型 [] 数组名 = new 元素类型{元素,元素,元素,……} 可简写为:元素类型 [] 数组名 = {元素,元素,元素,……}
二、数组的操作:
1,遍历数组:
一般形式:
for (int i=0,i<arr.length,i++)
{
具体操作动作如: System.out.println(arr[i]);
}
2,获取最值
一般形式:
int min,max;
min=max=arr[0];
for (int i=0;i<arr.length;i++)
{
if (arr[i]<min)
int temp=arr[i];
arr[i]=min;
min=temp;
}
for (int i=0;i<arr.length;i++)
{
if (arr[i]>max)
int temp=arr[i];
arr[i]=max;
max=temp;
}
上述方法也可以采用定义下标形式。
3,数组排序:
选择排序:
思路:选择排序思想是将数组中从第一个元素开始依次比较第二个元素,再比较第三个元素,一直到最后一个元素,再用第二个元素比较第三个元素到最后,以此类推。采用嵌套循环的方式来控制角标进行比较,其中要注意的是选择排序用于比较的元素不需要取到最后一个。另外,选择排序第一轮内循环比较后的最值出现在最前面,也就是第一个元素。
一般形式:(从小到大)
for (int i=0;i<arr.length-1;i++)
{
for (int j=i+1;j<arr.length;j++)
{
if (arr[i]>arr[j])
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
冒泡排序:
思路:冒泡排序思想是相邻的两个元素作比较,如第一个元素与第二个元素比较,再将第二个元素与第三个元素作比较,直到最后一个。然后再重新从第一个开始作比较,到倒数第二个元素为止。其中要注意的是用于比较的元素不能取到最后一个元素,另外冒泡排序第一轮内循环比较后的最值出现在最后面,也就是数组的最后一个元素。
一般形式:(从小到大)
for (int i=0;i<arr.length-1;i++)
{
for (int j=0;j<arr.length-1-i;j++)
{
if(arr[j]>arr[j+1])
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
注意:1、对于数组的排序问题,效率最高,速度最快的排序方式为希尔排序。
2、在java中提供了数组排序包Array.sort,其中包括了多种对于排序问题的操作,在实际应用中可以直接调用。
4、数组中查找某一元素
整体查找:
利用循环语句遍历数组,找到key后提取。
一般形式:
for (int i=0;i<arr.length;i++)
{
if(a[i]==key)
return i;
}
return -1;//此处返回-1表示没有找到该key,规范写法。
折半查找;
折半查找的必要条件是必须在有序的数组中查找,通过调整数组中间的元素来缩小查找范围。
一般形式:(控制下标)
int min=0,max=arr.length-1,min;
while (min<=max)
{
mid=(min+max)>>1;
if(key>mid)
min=mid+1;//中间值的下一个元素。
else if (key<mid)
max=mid-1;//中间值的前一个元素。
else
return mid;
}
return -1;//表示没有找到。
5、查表法进制转换
十进制转其他进制:
public static void trans(int num,int base,int offset) //num表示要转换的数;base是需要转成的进制再前去1;offset是右移的位数(如转16进制就右移4位)。
char[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
while(num!=0)
{
int temp=num&base;
num>>>offset;
}
6、二维数组的全累加
二维数组定义:int[][] arr={};
累加思想:将二维数组遍历,用嵌套循环方式控制数组下标。
一般形式:
int sum=0;
for (int i=0;i<arr.length;i++)
{
for (int j=0;j<arr[i].length;j++)
{
sum+=arr[i][j];
}
}
注:在学习数组过程中,接触到了java的StringBuffer类,可以存储字符并实现字符的反向打印动作。
以上为数组学习的整理笔记。
---------------------- android培训 、 java培训 、期待与您交流! ----------------------
黑马日记第二篇——数组
最新推荐文章于 2024-07-15 22:27:18 发布