zoukankan      html  css  js  c++  java
  • java⑾

    1.数组:

    01.一组 相同数据类型的集合!
    02.数组在内存中会 开辟一串连续的空间来保存数据!

    ***存储30名学生的姓名!

    01.姓名 应该用什么数据类型保存??? String
    02.难道需要创建30个String类型的变量吗??? 不需要

    *********

    人类 [] 1号车厢=new 人类[50];
    找到18号座位的乘客
    1号车厢[18]="小黑";

    *********

    ***数组的基本要素:
    元素的类型: 人类 数组中每个元素的数据类型
    标识符: 1号车厢 数组的名称
    数组的长度: [50]
    数组的元素:"小黑"
    元素的下标:[18] 数组的下标从0开始!

    想访问到数组中的元素,必须通过数组的下标来访问!

    ***语法:

    数据类型 [] 数组名称=new 数据类型 [大小];

    ***使用:

    01. 声明数组 创建一个火车车厢
    int [] nums;

    02.分配空间 给火车创建座位
    nums=new int[5];

    03.赋值 乘客入座
    nums[0]=50;
    **************************************************
    数组的长度一旦被定义,不允许被改变!

    **************************************************

    2.经典案例

    01.

    public static void main(String args[]) {
    /**
    * 需求:
    * 想创建一个能保存5名学员成绩的数组!
    *
    * 分析:
    * 01.学员成绩都是double类型
    * 02.5学员是一个集合
    *
    * 相同数据类型的一组数据的集合=======》数组
    */

    // double[] scores = new double[5]; 在声明数组的同时,在内存中开辟了5个连续的空间!
    // System.out.println(scores[5]); 数组下标越界

    String[] scores;// 声明数组
    scores = new String[5]; // 开辟空间

    /**
    scores[0] = "小黑1";
    scores[1] = "小黑2";
    scores[2] = "小黑3";
    scores[3] = "小黑4";
    scores[4] = "小黑5";
    * 使用循环给5名学生的姓名赋值
    *
    * scores.length:获取数组的长度
    *
    * 数组的下标最大值=数组的长度-1
    */
    Scanner input = new Scanner(System.in);
    for (int i = 0; i < scores.length; i++) {
    System.out.println("请您输入下标是" + i + "的姓名");
    scores[i] = input.next();
    }

    // 遍历==》把集合中的每个元素打印出来

    for (int i = 0; i < scores.length; i++) {
    System.out.println(scores[i]);
    }

    }
    02.

    public static void main(String[] args) {
    /**
    * 求数组的最大值 和 最小值
    */

    // 定义一个数组 参赛的选手
    int[] nums = { 50, 20, 100, 30, 400, 800 };
    // 默认第一个元素先上台 擂主
    int max = nums[0];
    // 循环比较 打擂
    for (int i = 0; i < nums.length; i++) {
    // 如果发现 元素比 我们的max值大,那就让这个元素成为max
    if (nums[i] > max) {
    max = nums[i];
    System.out.println("历届的擂主:" + max);
    }
    }
    System.out.println("我最NB==》" + max);

    }

    03.

    /**
    *
    * 需求:
    * 有一组数据{10,5,6,80,100}
    * 01.循环输出数组中的每一个元素
    * 02.求数组中所有元素的和
    * 03.猜字游戏,让用户输入一个数字,然后进行循环比较
    */
    public static void main(String[] args) {
    // 创建一个数组 保存这组数据
    int nums[] = { 10, 5, 6, 80, 100 };
    // 定义一个变量保存总数
    int sum = 0;
    System.out.println("*****遍历数组******");
    for (int i = 0; i < nums.length; i++) {
    sum += nums[i];
    System.out.println(nums[i]);
    }
    System.out.println("总和为:" + sum);

    System.out.println("请您输入一个数字:");
    Scanner input = new Scanner(System.in);
    int choose = input.nextInt();
    boolean flag = false; // 默认没有找到
    // 循环比较 于数组中的每一个元素进行比对
    for (int i = 0; i < nums.length; i++) {
    if (choose == nums[i]) {
    flag = true;
    break; // 找到之后直接退出循环
    }
    }
    if (flag) {
    System.out.println("恭喜您中奖!");
    } else {
    System.out.println("很遗憾......");
    }

    }

    *******************************************************

    3.拓展::::

    01.

    public class ArraysDemo02 {

    /**
    * Arrays是操作数组的工具类!
    * int: 集合中每一个元素的数据类型
    * num:只是一个变量名,保存每一个需要输出的元素
    * nums:需要遍历的集合
    * for(int num:nums){
    * }
    */
    public static void main(String[] args) {
    int[] nums = { 50, 20, 100, 30, 400, 800 };
    System.out.println("排序之前");
    for (int num : nums) {
    System.out.println(num);
    }
    // 01.实现数组的排序
    Arrays.sort(nums);
    // 使用for加强 实现遍历
    System.out.println("排序之后");
    for (int num : nums) {
    System.out.println(num);
    }
    // 02.把数组转换成一个字符串
    String result = Arrays.toString(nums);
    System.out.println(result);
    // 03.将数组中的所有元素都改变成一个值
    Arrays.fill(nums, 521);
    System.out.println("看看所有的元素是否被改变");
    for (int num : nums) {
    System.out.println(num);
    }
    System.out.println("新数组");
    // 04.将数组复制成一个新数组
    nums = Arrays.copyOf(nums, 10);
    for (int num : nums) {
    System.out.println(num);
    }
    // 05.查询某个元素 在 数组中的位置 前提 必须 先排序
    int[] nums2 = { 50, 20, 100, 30, 400, 800 };
    Arrays.sort(nums2);
    int index = Arrays.binarySearch(nums2, 400);
    System.out.println("400出现的位置是:" + index);

    // 将一个Stirng类型的字符串转换成 char类型的数组
    String a = "50,20,100,30,400,800";
    char[] words = a.toCharArray();
    for (char c : words) {
    System.out.print(c);
    }
    }

    02.

    /**
    * 需求:
    * 01.以,为分割点,把String转换成一个数组
    * 02.把String转换成int之后求和
    */
    public static void main(String[] args) {
    String a = "50,20,100,30,400,800";
    String[] words = a.split(",");
    // 定义一个变量保存 和
    int sum = 0;
    for (int i = 0; i < words.length; i++) {
    sum += Integer.parseInt(words[i]);
    }
    System.out.println(sum);

    System.out.println("*************字符的逆序输出***************");
    char[] chars = { 'z', 'f', 'g', 'c', 'a', 'b', 'j' };
    Arrays.sort(chars);
    for (char c : chars) {
    System.out.println(c);
    }

    for (int i = chars.length - 1; i >= 0; i--) {
    System.out.println(chars[i]);
    }

    }

  • 相关阅读:
    HTB-靶机-Charon
    第一篇Active Directory疑难解答概述(1)
    Outlook Web App 客户端超时设置
    【Troubleshooting Case】Exchange Server 组件状态应用排错?
    【Troubleshooting Case】Unable to delete Exchange database?
    Exchange Server 2007的即将生命周期,您的计划是?
    "the hypervisor is not running" 故障
    Exchange 2016 体系结构
    USB PE
    10 months then free? 10个月,然后自由
  • 原文地址:https://www.cnblogs.com/wwlw/p/7324236.html
Copyright © 2011-2022 走看看