数组(有面试题)

文章介绍了Java中的数组概念,包括声明方式、索引使用、数组排序(如冒泡排序)、动态添加元素(如新员工年龄插入)、以及数组长度固定的处理(如数组拷贝)。通过实例展示了如何在实际开发中操作数组并进行数据排序。
摘要由CSDN通过智能技术生成

数组

数组: 内存空间连续的,相同数据类型的集合。
数组本身就是一种数据类型,可以存放数组。(基本数据类型和引用数据类型)

数组的使用

1.声明 3种方式
(1) int[] array = new int[5]; 每个元素赋值。
(2) int[] array1 = new int[]{1,2,3,4,5,6,7,8,9}。
(3) int[] array2 = {1,2,3,4,5,6,7,8,9}。

注意:一般用第一和第三种

[ ] 代表数组。
int 代表数组里面可以放什么数据类型。
new 就是创建一个对象。
5 容器里面可以放几个数组。

int[] array = new int[5];

索引: 下标/脚标. 寻找容器里面的数据的,从0开始。
寻找定位元素: 通过数组名[索引]
数组的长度 数组名:length. (数组

/*1 Arrays.toString(array)数组的打印
System.out.println(Arrays.toString(array));数组里面的元素能够排序的前提下

2 Arrays.sort(array); 数组的排序
会在原来的数组上修改

3 Arrays.copyof(要复制的数组,指定新数组的长度)
会得到一个新的数组
为什么要copyOf:
数组长度一旦固定,就没法改变。
*/

冒泡排序:

import java.util.Arrays;

public class Demo05 {
    public static void main(String[] args) {
        int[] array = {10,20,5,40,35};
        for (int i = 0; i < array.length-1; i++) {
            for (int j = 0; j < array.length-1-i; j++) {
                if (array[j]>array[j+1]){
                    int temp = array[j];
                    array[j] = array[j +1];
                    array[j+1]=temp;
                }
            }
        }
        System.out.println(Arrays.toString(array));
    }
}

练习:1.今天公司招了一位开发。需求: 加入新员工的年龄,并保持升序

import java.util.Arrays;
import java.util.Scanner;

public class Text02 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] ages = {20,25,30,31,40,45};
        System.out.println("公司员年龄插入前"+Arrays.toString(ages));
        System.out.println("请输入员工新加入员工的年龄:");
        int[] newage = Arrays.copyOf(ages,ages.length+1);
        newage[newage.length-1]=sc.nextInt();
        Arrays.sort(newage);
        System.out.println(Arrays.toString(newage));
    }
}

练习2:找出随机输入的5人身高中最低的

import java.util.Arrays;
import java.util.Scanner;

public class Text03_1 {
    public static void main(String[] args) {
        int[] height = new int[5];
        Scanner scanner = new Scanner(System.in);
        for (int i = 0; i < height.length; i++) {
            System.out.println("请输入第"+(i+1)+"个数");
            height[i] = scanner.nextInt();
        }
        System.out.println(Arrays.toString(height));
        int max = height[0];
        int min = height[0];
        for (int i = 0; i < height.length; i++) {
            if (max<height[i]){
                max=height[i];
            }else if(min>height[i]){
                min = height[i];
            }
        }
        System.out.println("5人中身高最高的是"+max);
        System.out.println("5人中身高最低的是"+min);
    }
}

练习3:经理要统计全公司的年龄并且以升序的形式打印出来
             经理要统计全公司的薪资并且以降序的形式打印出来

import java.lang.reflect.Array;
import java.util.Arrays;

public class Text01_1 {
    public static void main(String[] args) {
        int[] ages = {32,51,25,24,31};
        System.out.println("公司员工年龄排序前"+ Arrays.toString(ages));
        for (int i = 0; i < ages.length-1; i++) {
            for (int j = 0; j < ages.length-1-i; j++) {
                if (ages[j]>ages[j+1]){
                    int temp = ages[j];
                    ages[j] = ages[j+1];
                    ages[j+1] = temp;
                }
            }
        }
        System.out.println("公司员工年龄排序后"+Arrays.toString(ages));
        int[] salary = {6500,4400,7100,3000,4500};
        System.out.println("公司员工薪资排序前"+Arrays.toString(salary));
        for (int i = 0; i < salary.length-1; i++) {
            for (int j = 0; j < salary.length-1-i; j++) {
                if (salary[j]>salary[j+1]){
                    int temp = salary[j];
                    salary[j] = salary[j+1];
                    salary[j+1] = temp;
                }
            }
        }
        System.out.println("公司员工薪资排序前"+Arrays.toString(salary));
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值