1.查询数组元素
- 分析:
先指定需要查找的元素 再 循环整个数组;当数组元素和需要查找的元素匹配时,记录对应的下标 [ 预先定义变量index让它的值为-1(可以保证当元素没有 发生匹配时,index记录的下标值为 数组在非法下标取值,表示没有找到) ]
int index=-1;
int[] array= {11,22,33,44,55};
Scanner s=new Scanner(System.in);
System.out.println("输入要查找的元素: ");
int element=s.nextInt();
for(int i=0;i<array.length;i++) {
if(array[i]==element) {
index=i;
break;
}
}
if(index!=-1) {
System.out.println("元素在数组中的下标位置是 "+index);
}else { //未找到元素
System.out.println("数组中没有这个元素");
}
}
2.获取最值
- 分析:
①求最大值:先假设数组的第一个元素为最大值max,循环数组的其他元素,拿max和数组的每一个元素比较,只要发现数组中的元素大于当前max的取值,将max的值替换,循环结束后max中存储的就是数组中的最大值.
②求最小值:先假设数组的第一个元素为最小值min,循环数组的其他元素,拿min和数组的每一个元素比较,只要发现数组中的元素小于当前min的取值,将min的值替换,循环结束后min中存储的就是数组中的最小值.
int[] array= {111,77,44,9,100,88,6,911,56,23};
//最大值
int max=array[0];
for(int i=1;i<array.length;i++) {
if(max<array[i]) {
max=array[i];
}
//max=max<array[i] ? array[i]:max;
}
System.out.println(max);
//最小值
int min=array[0];
for(int i=0;i<array.length;i++) {
if(min>array[i]) {
min=array[i];
}
//min=min>array[i] ? array[i]:min;
}
System.out.println(min);
3.数组逆序
- 分析:
public static void main(String[] args) {
int[] array= {11,22,33,44,55,66,77};
System.out.println("逆序前: ");
for(int i=0;i<array.length;i++) {
System.out.print(array[i]+" ");
}
System.out.println();
int temp=0;
for(int i=0;i<array.length/2;i++) {
temp=array[i];
array[i]=array[array.length-1-i];
array[array.length-1-i]=temp;
}
System.out.println("逆序后: ");
for(int i=0;i<array.length;i++) {
System.out.print(array[i]+" ");
}
}
4.数组排序(冒泡排序)
- 分析:
int[] array= {11,6,10,44,2,88,1};
int temp=0;
for(int i=0;i<array.length-1;i++) { //冒泡次数[L-1]
//[-1:要访问j+1,防止下标越界],[-i:每轮都有最值沉降下去]
for(int j=0;j<array.length-1-i;j++) {
if(array[j]>array[j+1]) {
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
for(int i=0;i<array.length;i++) {
System.out.print(array[i]+" ");
}
5.数组插入元素
- 分析:
public static int[] addElement(int[] old_arr,int index,int element) {
int[] new_arr=new int[old_arr.length+1];
for(int i=0;i<old_arr.length;i++) {
if(i<index) { //平移
new_arr[i]=old_arr[i];
}
if(i==index) { //数据插入,再数据斜移
new_arr[i]=element;
new_arr[i+1]=old_arr[i];
}
if(i>index) { //数据斜移
new_arr[i+1]=old_arr[i];
}
}
return new_arr;
}
6.数组删除元素
- 分析:
public static int[] removeElement(int[] old_arr,int index) {
int[] new_arr=new int[old_arr.length-1];
for(int i=0;i<new_arr.length;i++) {
if(i<index) {
new_arr[i]=old_arr[i];
}
if(i>=index) {
new_arr[i]=old_arr[i+1];
}
}
return new_arr;
}