栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中数组的学习与使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中数组的学习与使用

数组是什么?

数组可以理解为存放相同数据类型的内存区域(可以理解为容器)。

举例:

如果班级里进行随机点名但是没有使用数组会出现什么情况?

String name1 = "张三";

String name2 = "李飞";                                                  

String name3 = "小二";

String name4 = "王五";

String name5 = "李四";

......                                                  

代码冗余量大,特别繁琐,业务功能实现繁琐。

使用数组完成:

String [] names = { “ 张誉 ” , “ 刘疏桐 ” , “ 田启峰 ” , … “ 张学颖 ” , “ 李沁霖 ” , “ 陈侃 ” ,};

数组的定义

  数组分为静态化数组和动态化数组

{

静态化数组格式:

              // 完整格式               数据类型 [] 数组名 = new 数据类型 []{ 元素 1 ,元素 2 ,元素 3… };               // 简化格式               数据类型 [] 数组名 = { 元素 1 ,元素 2 ,元素 3 , … }; 、 动态化数组格式:             数据类型[] 数组名= new 数据类型[长度] ( 定义数组的时候 只确定元素的类型和数组的长度,之后再存入具体数据 。 )             
int[] arr = new int[3];
// 后赋值
arr[0] = 10;
System.out.println(arr[0]); // 10

思考?

什么时候使用静态数组什么时候使用动态数组:当数据元素确定时使用静态数组,当不确定时使用动态数组。

⚫ 两种格式的写法是独立的,不可以混用。

}

数组的访问

数组名[索引]

int[] arr = {12,343,53,65};
// 取值
System.out.println(arr[0]); // 12
// 赋值
arr[2] = 100;
System.out.println(arr[2]); // 53
// 获取数组的长度(就是数组元素的个数)
System.out.println(arr.length); // 4

数组的注意事项:

①数据类型[] 数组名   完全等价于  数据类型 数组名[]

②什么类型的数组存放什么类型的数据,否则报错

③数组一旦定义出来,程序执行的过程中,长度、类型就固定了。

元素默认规则
 

数组的遍历

数组的遍历就是一个一个的访问数据

int[] ages = {20, 30, 40, 50};
for (int i = 0; i < ages.length; i++) {
System.out.println(ages[i]);
}

 来一些经典案例吧!

❶数组元素求和

public class TestDemo1 {
    public static void main(String[] args) {
        //目标:学会使用数组元素求和
        //1定义一个静态数组
        int[] money = {10,222,45,64};
        //             0   1   2  3
        //2对这个数组进行遍历
        //3定义一个求和变量sum
        int sum = 0;
        for (int i = 0; i < money.length ; i++) {
            sum += money[i];
        }
        System.out.println("数组的和为"+sum);
    }

}

❷开发一个幸运小游戏,游戏规则如下: 游戏后台随机生成1-20之间的5个数(无所谓是否重复),然后让大家来猜数字

package TestDemo;

import java.util.Random;
import java.util.Scanner;

public class TestDemo2 {
    public static void main(String[] args) {
        //随机生成一个1-20的数据存到数组中进行猜测,若猜中返回第一次猜中数据在数组中的位置
        //1生成一个动态数组
        int[] date = new int[5];
        //2随机生成5个数并存入到数组中去
        Random r = new Random();
        for (int i = 0; i < date.length ; i++) {
            date[i] = r.nextInt(1,20);
        }
        //3使用一个死循环进行猜测
        Scanner sc = new Scanner(System.in);  //进行扫描,从键盘输入数
        Out:
        while (true){
            System.out.println("请输入1-20之间的数进行猜测");
            int guessdate = sc.nextInt();
           //对数组进行遍历
            for (int i = 0; i < date.length; i++) {
                  if (guessdate == date[i]){
                      System.out.println("您猜中了,首次出现的地方为" + i);
                      break Out;//结束整个循环
                  }
            }
            System.out.println("您当前的猜测不在数组中请重新猜测");
        }
        //4输出整个数组是用户自行判断猜测是否正确
        for (int i = 0; i < date.length; i++) {
            System.out.print(date[i] +"t");
        }
    }
}

❸随机排名

package TestDemo;

import java.util.Random;
import java.util.Scanner;

public class Test3 {
    public static void main(String[] args) {
        //录入一组员工工号,随机进行输出22
        //1定义一个动态数组
        int[] gonghao = new int[5];
        //2利用循环输入一组员工的工号
        //需要一个扫描器
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < gonghao.length ; i++) {
            System.out.println("您输入的工号是第" + (i+1) +"个员工的工号");
            int hao = sc.nextInt();
            gonghao[i] = hao;
        }
        //3随机生成一个索引值并进行工号的交换
        Random r = new Random();
        for (int i = 0; i < gonghao.length; i++) {
            int index = r.nextInt(gonghao.length);//随机生成01234的索引
            int temp = gonghao[index];
            gonghao[index] = gonghao[i];
            gonghao[i] = temp;
        }
        for (int i = 0; i < gonghao.length; i++) {
            System.out.print(gonghao[i] + "t");
        }
    }
}

❹冒泡排序

package TestDemo;

public class Test4 {
    public static void main(String[] args) {
        //冒泡排序
        int[] arr = {3,5,1,4};
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] > arr[j+1]){
                    int temp = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + "t");
        }
    }
}

 部分内容来自黑马程序员!!!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/876539.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号