1.掌握数组常用操作
1)数组获取最大、最小值
设置个max值,并给它赋值数组下标为0的元素,从左到右,逐个对比,如果比max大,就把值赋给max,直到结束循环
public class Demo01 {
public static void main(String[] args) {
int[] nums = {11,22,33,44,55};
int max = nums[0];
for (int i = 0; i < nums.length; i++) {
if (max
设置个min值,并给它赋值数组下标为0的元素,从左到右,逐个对比,如果比min小,就把值赋给min,直到结束循环
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
int[] prices = new int[4];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < prices.length; i++) {
System.out.println("第"+(i+1)+"家店的价格:");
prices[i] = sc.nextInt();
}
int min = prices[0];
for (int i = 0; i < prices.length; i++) {
if (min>prices[i]) {
min=prices[i];
}
}
System.out.println("最低价格为"+min);
}
}
2)数组数字排序
冒泡排序:
每次比较相邻两数
升序:小的交换到前面;每轮结束后最大的数交换到最后
降序:大的交换到前面;每轮结束后最小的数交换到最后
第一轮:比较了length-1次
第二轮:比较了length-2次
第三轮:比较了length-3次
第四轮:比较了length-4次
第 i 轮:比较了length-i 次
public class Demo05 {
public static void main(String[] args) {
int[] array = {16,25,9,90,23};
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-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]+" ");
}
}
}
由于 i 和 j 是从0开始的,所以要注意 i 和 j 的范围。
3)数组插入数字
设置一个新的数组,想要插入n个数字就设置新数组的长度为原数组长度+n,然后遍历原数组,赋值给新数组。如果想插入在某个位置就让该位置之后的所有元素往后移动一位,也就是从数组末尾前一位开始给后一个元素赋值,一直到想要插入位置给后一位赋值后,直接给插入位置的元素赋值,目的就达到了。
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
int[] scores = {99,88,77,66,55};
int[] newScores = new int[scores.length+1];
for (int i = 0; i < scores.length; i++) {
newScores[i]= scores[i];
}
Scanner sc = new Scanner(System.in);
System.out.println("插入数值:");
int num = sc.nextInt();
int index = newScores.length-1;
for (int i = 0; i < newScores.length; i++) {
if (num>newScores[i]){
index = i;
break;
}
}
for (int i = newScores.length-1; i > index; i--) {
newScores[i]=newScores[i-1];
}
newScores[index]=num;
for (int i = 0; i < newScores.length; i++) {
System.out.println(newScores[i]);
}
}
}
4)数组删除数字
想要删除某个元素,让后一个元素的数据赋值给它,后面的元素依次赋值给前一个,然后给最后一位赋值为0。如果想删除最后一个,给最后一个赋值为0即可。
import java.util.Scanner;
public class Demo07 {
public static void main(String[] args) {
int[] nums = {11,25,96,65,49,78,95};
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i]+" ");
}
System.out.println();
Scanner sc = new Scanner(System.in);
System.out.println("请输入删除元素的下标(0——length-1):");
int index = sc.nextInt();
for (int i = index; i < nums.length-1; i++) {
nums[i]=nums[i+1];
}
int[] nums2 = new int[nums.length-1];
for (int i = 0; i < nums2.length; i++) {
nums2[i] = nums[i];
}
for (int i = 0; i < nums2.length; i++) {
System.out.print(nums2[i]+" ");
}
}
}
我这里是直接创建了一个新的数组,把原数组删除某个数字后,其后面数字全都依次向前一位赋值,然后遍历新数组,把原数组的元素赋值给新数组。
2.java.util.Arrays类
Arrays.equals(array1,array2)
比较array1和array2两个数组是否相等
import java.util.Arrays;
public class Demo09 {
public static void main(String[] args) {
int[] nums1 = {1,2,4,3,5};
int[] nums2 = {1,2,4,5,3};
boolean result= Arrays.equals(nums1,nums2);
System.out.println(result);
}
}
Arrays.sort(array)
对数组array的元素进行升序排列
import java.util.Arrays;
public class Demo09 {
public static void main(String[] args) {
int[] nums1 = {1,2,4,3,5};
Arrays.sort(nums1);
for (int i = 0; i < nums1.length; i++) {
System.out.print(nums1[i]+" ");
}
}
}
Arrays.toString(array)
将一个数组array转换成一个字符串
import java.util.Arrays;
public class Demo09 {
public static void main(String[] args) {
int[] nums2 = {1,2,4,5,3};
System.out.println(Arrays.toString(nums2));
}
}
Arrays.fill(array,val)
把数组array所有元素都赋值为val
import java.util.Arrays;
public class Demo09 {
public static void main(String[] args) {
int[] nums1 = {1,2,4,3,5};
for (int i = 0; i < nums1.length; i++) {
System.out.print(nums1[i]+" ");
}
System.out.println();
Arrays.fill(nums1,999);
for (int i = 0; i < nums1.length; i++) {
System.out.print(nums1[i]+" ");
}
}
} 


