zoukankan      html  css  js  c++  java
  • Java基础 Day06(个人复习整理)

    数组

    1、什么是数组:

      数组就相当于一个“盒子”,可以存放多个数据,但是得保证数据的类型一致

    2、如何使用数组:

    ·  1>声明数组:

         语法格式:数据类型[]  数组名  或者数据类型  数组名[]

         比如:

    int[] scores;
    float[] heights;
    String names[];
    Object obs[];

        注:此时的数组不能直接使用!!!

      2>开辟空间:

         如果数组类型为基本数据类型,byte short int long 默认开辟空间初始化的值都是0,float double 默认开辟空间初始化的值都是0.0。

         如果数组类型为引用类型,那么默认开辟空间初始化的值都是null。这样的数组我们称为空数组。

         初始化语法格式:new 数据类型[数组容量]

         所谓的容量,就是内部存储数据的个数,一定要在初始化时给定,否则开辟的大小无法确定!

         数组是一块连续的内存空间,数组名这个变量在栈区,引用的时new出来的真正的数组对象,在堆区。

      3>为空数组赋值、取值:

         只有当分配空间之后才能往数组中存放数据,数组中访问元素或者为元素赋值,都是通过下标完成的。

         如果数组名[下标] 出现在= 左边此时代表赋值操作,出现在=右边或者单独出现,则代表取值。

         并且数组下标从0开始,到数组长度 - 1。

         语法格式 数组名[下标]

    scores = new int[4];
    heights = new float[5];
    names = new String[3];
    obs = new Object[3];

        注:使用数组一定要注意数组越界的情况!!!

      4> 如何对数组进行遍历:

        遍历就是把一个数组或者集合通过下标遍历后显示出来。

        for循环通常是与数组连用的,数组容量固定,for通常用于已知次数,所以循环初始值为0,最大到数组容量-1,

        正好可以与数组下标对应

    3、冒泡排序:

      冒泡排序是一趟一趟的排序,在一趟中相邻两个数比较,如果前面的大于后面的,则交换位置,每一趟都可以得到当

      趟中数值最大的数,最终形成有序数列。

      趟数        次数
                 1        4
                 2        3
                 3        2
                 4        1
           趟数+次数==元素个数

    int[] nums = {18, 25, 6, 2, 54};
            for (int i = 1; i < nums.length; i++) {
                for (int j = 0; j < nums.length - i; j++) {
                    //前面大于后面换位置,升序;前面小于后面换位置,降序;
                    if (nums[j] > nums[j + 1]) {
                        int temp = nums[j];
                        nums[j] = nums[j + 1];
                        nums[j + 1] = temp;
                    }
                }
            }
            System.out.println(Arrays.toString(nums));

    4、Arrays工具类

      1>生成一个空数组,然后为其全部赋值为数字10

    int[] arr = new int[10];
    //哪个数组, 赋什么值
    Arrays.fill(arr, 10);

      2>如何打印数组

    //把数组转换成一个字符串进行打印,数组内部元素中间以, 空格隔开
    //想要打印的数组
    System.out.println(Arrays.toString(arr));

    练习:控制台输入出生年月日,输出这一天是当年的第几天。

    Scanner scanner = new Scanner(System.in);
            System.out.println("请输入出生日期,以空格隔开:");
            int year = scanner.nextInt();
            int month = scanner.nextInt();
            int day = scanner.nextInt();
            //1 声明月份天数数组
            int[] months = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
            //2 通过闰年判断,改变二月份的月份天数
            boolean is400 = year % 400 == 0;
            boolean is4 = year % 4 == 0;
            boolean is100 = year % 100 == 0;
            if (is400 || (is4 && !is100)) {
                months[1] = 29;
            }
            //3 将输入的月份之前所有月份的天数累加
            int days = 0;
            for (int i = 0; i < month - 1; i ++) {
                days += months[i];
            }
            //4 再加上当月的天数即为总天数
            days += day;
            System.out.println(days);
  • 相关阅读:
    消息中间件
    线程以及多线程
    锁以及分布式锁
    并发以及高并发
    SpringBoot + SpringCloud学习踩坑实记
    公众号笔记: 2018年12月
    浅谈final关键字的用法
    浅谈static关键字的四种用法
    Linux常用的一些命令
    HTTPS
  • 原文地址:https://www.cnblogs.com/aa1869/p/10627215.html
Copyright © 2011-2022 走看看