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

Java学习第7天,今天是数组

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

Java学习第7天,今天是数组

1.一维数组

声明数组是为了在更多的数据时减少数据处理的数量。其中声明一个变量就是在内存空间划出一块合适的空间,声明一个数组就是在内存空间划出一串连续的空间。

数组的基本要素:

 

标识符:数组的名称
数组元素:数组中存放的数据
元素下标:对数组元素进行编号,数组下标从0开始,数组中的每个元素都可以通过下标来访问
元素类型:数组元素的数据类型 。规范数组名称的后缀必须加Array。

使用数组四步走:

声明数组
分配空间
赋值
处理数据

基本语法:

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

赋值:

1.边声明边赋值:int[ ] scores = {89, 79, 76};

2.动态的从键盘录入信息并赋值:

Scanner input = new Scanner(System.in);
for(int i = 0; i < 30; i ++){
     score[i] = input.nextInt();
}

练习(1)

购物金额结算,某会员本月购物五次,输入五笔购买金额,以表格的形式输出这五笔购物金额及总金额。运行效果如图:

 

package cn.higher;

import java.util.Scanner;


public class Close {
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入会员本月的消费记录");
        //定义一个数组,数组中有5个元素
        double[] payArray = new double[5];
        //定义i初始值为0,小于数组内元素的个数,并且自增
        for (int i = 0;i < payArray.length;i++){
            System.out.println("请输入第" + (i + 1) + "笔购物金额:");
            //直接在数组中输入5个元素
            payArray[i] = sc.nextDouble();
        }
        System.out.println("序号tttt金额(元)");
        //定义一个总金额,初始值为0
        double sum = 0;
        for (int j = 0;j < payArray.length;j++){
            System.out.println((j + 1) + "tttt" + payArray[j]);
            //将所有金额都加为总金额sum
            sum += payArray[j];
        }
        System.out.println("总金额:" + sum);
    }
}

 运行成功

循环数组(比大小或者求和之类的)

练习(2)

猜数游戏,有一个数列:8,4,2,1,23,344,12
功能1:循环输出数列的值
功能2:求数列中所有数值的和

package cn.higher;

import java.util.Scanner;


public class Guess {
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] numArray = {8,4,2,1,23,344,12};
        int sum = 0;//定义和
        for (int i = 0;i < numArray.length;i++){
            System.out.println(numArray[i]);
            sum += numArray[i];
        }
        System.out.println("和:" + sum);
    }
}

运行成功

练习(3)

求手机最低价格,张浩想买一部手机,他询问了四家店的价格,分别是3000元、3150元、2900元和2950元,请编程求出最低价格

package cn.higher;

import java.util.Scanner;


public class Phone {
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //定义一个数组,元素个数为4
        int [] moneyArray = new int[4];
        System.out.println("请输入4家店的价格");
        //定义i初始值为0,小于数组内元素的个数,并且自增
        for (int i = 0;i < moneyArray.length;i++){
            System.out.println("第" + (i + 1) + "家店的价格:");
            //在数组内输入价格
            moneyArray[i] = sc.nextInt();
        }
        //将数组内第一个元素定位最小值
        int little = moneyArray[0];
        for (int j = 0;j < moneyArray.length;j++){
            //将每一个元素和第一个元素比较
            if (moneyArray[j] < little){
                //将得到的值赋值给little
                little = moneyArray[j];
            }
        }
        System.out.println("最低金额是:" + little);
    }
}

运行成功

数组的添加,修改,删除:(重要的是下标的寻找)

练习(4)

添加元素

添加新的图书有一个存储图书名称的数组,数据如下:
String[] books={“三国演义”,“红楼梦”, “史记” , null , “左传”,”菜根谭”};在null的位置插入西游记。

package cn.higher;

public class Addition {
    
    public static void main(String[] args) {
        //定义一个数组
        String[] booksArray = {"三国演义","红楼梦","史记",null,"左传","菜根谭"};
        //定义一个变量index,用来接收"null"元素
        int index = -1;
        //定义i初始值为0,小于数组内元素的个数,并且自增
        for (int i = 0;i < booksArray.length;i++){
            //当循环到"null"时
            if (booksArray[i] == null){
                //将"null"通过i赋值给变量index
                index = i;
                //改变变量的值
                booksArray[index] = "西游记";
            }
        }
        for (String shop : booksArray) {
            System.out.println(shop);
        }
    }
}

运行成功

删除元素

删除图书名称有一个存储图书名称的数组,数据如下:
String[] books={“三国演义”,“红楼梦”, “史记” , “西游记”, “左传”,”菜根谭”};删除“左传”这个元素,将后面的元素依次往前推,将最后一位设置为null。

package cn.higher;

public class Delete {
    
    public static void main(String[] args) {
        //定义一个数组
        String[] booksArray = {"三国演义","红楼梦","史记","西游记","左传","菜根谭"};
        //定义一个变量index
        int index = -1;
        //定义i初始值为0,小于数组内元素的个数,并且自增
        for (int i = 0;i < booksArray.length;i++){
            //当循环到元素"左传"时
            if ("左传".equals(booksArray[i])){
                //将"null"通过i赋值给"左传"
                booksArray[i] = null;
                //使用变量index定位变化的元素位置
                index = i;
                break;
            }
        }
        //从定位开始向后循环
        for (int i = index;i < booksArray.length - 1;i++){
            //将后一个元素赋值给前一个元素
            booksArray[i] = booksArray[i + 1];
        }
        //将"null"赋值给此数组内的最后一个元素
        booksArray[booksArray.length - 1] = null;
        for (String shop : booksArray) {
            System.out.println(shop);
        }
    }
}

运行成功

 修改就是替换相同下标的元素。(不在练习)

2.二维数组

冒泡排序:重复地遍历要排序的元素,依次比较相邻两个元素,如果前一个比后一个大,就把它们两个调换位置,直到没有元素再需要交换,排序完成。这个算法的名字由来是因为越小(或越大)的元素会经由交换慢慢“浮”到数列的顶端。

 速记口诀:

 N 个数字来排队
两两相比小靠前
外层循环 N-1
内层循环 N-1-i

二维数组基本语法:

<数据类型>  [ ][ ]  数组名;  或者  <数据类型>  数组名 [ ][ ];

例:int [ ][ ] scores;   //定义二维数组
        scores=new int[3][5];  //分配内存空间
或者
        int [ ][ ] scores = new int[3][5];

 Arrays类常用方法

方法名称

说明
boolean equals(array1,array2)比较array1和array2两个数组是否相等
sort(array)对数组array的元素进行升序排列
String toString(array)将一个数组array转换成一个字符串
void fill(array,val)把数组array所有元素都赋值为val
copyof(array,length)把数组array复制成一个长度为length的新数组,返回类型与复制的数组一致
int binarySearch(array, val)查询元素值val在数组array中的下标(要求数组中元素已经按升序排列)

 练习(5)

冒泡排序:使用冒泡排序对输入的5名学员成绩进行降序排列

package cn.blue;

import java.util.Scanner;


public class Bubbling {
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] arr = new int[5];
        for(int i = 0;i < arr.length;i++){
            System.out.println("请输入第" + (i + 1) + "个数字:");
            arr[i] = sc.nextInt();
        }
        for(int j = 0;j < arr.length;j++){
            for(int k = j;k < arr.length;k++){
                if(arr[j] > arr[k]){
                    int bigger = arr[j];
                    arr[j] = arr[k];
                    arr[k] = bigger;
                }
            }
        }
        System.out.println("您输入的数字从小到大的排序为:");
        for(int i = 0;i < arr.length;i++){
            System.out.print(arr[i] + ",");
        }
    }
}

运行成功

          



个人问题冒泡排序理解起来较为费劲。(听说冒泡排序面试必问)
 

 

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

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

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