美文网首页
【JAVA学习笔记】一维数组与二维数组

【JAVA学习笔记】一维数组与二维数组

作者: Geekero | 来源:发表于2021-03-23 22:33 被阅读0次

学习自华为开发者学院陈璇老师的JAVA系列课程

一、一维数组

数组声明

import java.util.Scanner;

public class GuessData {

    public static void main(String[] args){
        //声明数组
        int[] list = new int[]{8, 4, 2, 1, 23, 344, 12};
        //求和
        int sum = 0;
        for(int num : list){
            System.out.println(num);
            sum += num;
        }
        System.out.println("数组元素总和为: "+sum);

        //猜数
        Scanner input = new Scanner(System.in);
        System.out.print("请输入您要的猜测的数字: ");
        int guess = input.nextInt();

        //猜测结果
        boolean isCorrect = false;
        for(int num : list) {
            if (num == guess) {
                isCorrect = true;
                break;
            }
        }
        if(isCorrect == true) {
            System.out.println("恭喜您,您猜测的数字在数列中存在");
        }else{
            System.out.println("对不起,您猜的数字不在数列中");
        }
    }
}
import java.util.Scanner;

public class ShoppingList {

    //购物金额清单
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        System.out.println("请输入会员本月的消费记录");
        //5笔消费
        double[] list = new double[5];
        for(int i=0; i<list.length; i++){
            System.out.print("请输入第"+(i+1)+"笔会员消费金额:");
            list[i] = input.nextDouble();
        }

        //输出购物金额及总金额
        double sum = 0;
        System.out.println("序号\t\t金额 (元) ");
        for(int i=0; i<list.length; i++){
            System.out.println((i+1)+"\t\t"+list[i]);
            sum += list[i];
        }
        System.out.println("总金额\t\t"+sum);
    }
}

注意foreach跟Perl等语言不同,JAVA增强型for循环不能用于修改数组数值

数组和栈的概念

二、二维数组

冒泡排序

/*冒泡排序(升序)*/
public class SortNums {

    public static void main(String[] args){
        int[] nums = {16,25,9,90,23, 100, 17};
        System.out.println("*********冒泡排序前**********");
        for(int num : nums){
            System.out.println(num);
        }

        //冒泡排序(升序)
        for(int i=0; i<nums.length-1; i++){ //轮
            for(int j=0; j<nums.length-1-i; j++){  //每一轮比较几次
                //按照规律比价并交换数字,前比后大则交换
                if(nums[j]>nums[j+1]){
                    int temp = nums[j];
                    nums[j] = nums[j+1];
                    nums[j+1] = temp;
                }
            }
        }

        System.out.println("*********冒泡排序后**********");
        for(int num : nums){
            System.out.println(num);
        }

    }
}
import java.util.Scanner;

public class SortScore {

    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        System.out.print("请输入5名同学的成绩: ");
        int[] scores = new int[5];
        for(int i=0; i<scores.length; i++){
            System.out.print("请输入第"+(i+1)+"名同学的成绩: ");
            scores[i] = input.nextInt();
        }

        System.out.println("*********冒泡排序前**********");
        for(int num : scores){
            System.out.println(num);
        }

        //冒泡排序(降序)
        for(int i=0; i<scores.length-1; i++){ //轮
            for(int j=0; j<scores.length-1-i; j++){  //每一轮比较几次
                //按照规律比价并交换数字,前比后小则交换
                if(scores[j]<scores[j+1]){
                    int temp = scores[j];
                    scores[j] = scores[j+1];
                    scores[j+1] = temp;
                }
            }
        }

        System.out.println("*********冒泡排序后**********");
        for(int num : scores){
            System.out.println(num);
        }

    }
}

Arrays类

JDK8 API查询手册:https://docs.oracle.com/javase/8/docs/api/

import java.util.Arrays;

public class ArraysMethods {
    public static void main(String[] args){
        //equals比较两个数组是否相等
        System.out.println("----equals(array1, array2)方法: ----");
        int[] arr1 = {10,50,40,30};
        int[] arr2 = {10,50,40,30};
        int[] arr3 = {60,50,85};

        System.out.println(Arrays.equals(arr1, arr2));
        System.out.println(Arrays.equals(arr1, arr3));

        //toString将一个数组转换成一个字符串
        System.out.println("----toString(array)方法: ----");
        System.out.println(Arrays.toString(arr1));

        //fill将数组array的所有元素都赋值为val
        System.out.println("----fill(array, val)方法: ----");
        int[] arr4 = {10, 50, 40, 30};
        Arrays.fill(arr4, 100); //返回void
        System.out.println(Arrays.toString(arr4));

        //copyOf将数组array复制成一个长度为length的新数组
        System.out.println("----copyOf(array, length)方法: ----");
        int[] arr5 = {10,50,40,30};
        int[] arr6 = Arrays.copyOf(arr5, 6);
        System.out.println(Arrays.toString(arr6));

        //binarySearch查询元素val在数组array中的下标
        System.out.println("----binarySearch(array, val)方法: ----");
        int[] arr7= {10,50,40,30};
        Arrays.sort(arr7);
        System.out.println(Arrays.toString(arr7)); //一定要排序,没找到为随机负数
        System.out.println(Arrays.binarySearch(arr7, 40));
    }
}

字符排序+搜索

import java.util.Arrays;

public class ArraysSortChar {
    public static void main(String[] args){
        //字符串排序
        char[] chars = new char[] {'a','b','c','d','e','f','g'};

        System.out.print("原字符串序列: ");
        for(char oldChar : chars){
            System.out.print(oldChar + " ");
        }

        //查找特定字符位置
        Arrays.sort(chars);

        System.out.print("\n排序后的字符串序列: ");
        for(char newChar : chars){
            System.out.print(newChar + " ");
        }

        int index = Arrays.binarySearch(chars, 'b');
        System.out.println("\n字符b在数组中的位置为: "+index);
    }
}

二维数组

import java.util.Scanner;


public class ClassScoreTotal {
    public static void main(String[] args){
        int[][] scores = new int[5][5];

        //赋值
        for(int i=0; i<scores.length; i++){
            System.out.println("-------第"+(i+1)+"个班------");
            for(int j=0; j<scores[i].length; j++) {
                System.out.println("请输入第" + (i + 1) + "个班第" + (j + 1) + "个同学的成绩: ");
                Scanner input = new Scanner(System.in);
                scores[i][j] = input.nextInt();
            }
        }
        //完成5个班级的成绩统计
        System.out.println("-------- 统计成绩 --------");
        for(int i=0; i<scores.length; i++){
            int sum = 0; //每个班总分
            for(int j=0; j<scores[i].length; j++) {
                sum += scores[i][j];
            }
            System.out.println("第"+(i+1)+"个班的学生总成绩为: "+sum);
        }
    }
}

相关文章

网友评论

      本文标题:【JAVA学习笔记】一维数组与二维数组

      本文链接:https://www.haomeiwen.com/subject/pwuthltx.html