第四章 数组

4.1 概念

数组是一个变量,存储相同数据类型的一组数据,java中数组是长度是固定的,下标是从0开始的,数组会自动初始。

package cn;

public class Arr1 {

	public static void main(String[]  args) {
		int[] ns = new int[3];//0 1 2
		ns[ns.length-1] = 10;//异常 下标越界
		System.out.println(ns[0]);//0
		System.out.println(ns[1]);//0
		System.out.println(ns[2]);//10
		
		boolean[] fs = new boolean[3];
		System.out.println(fs[0]);//false
		
		String[] ss = new String[] {"hello","java","javascript"};
		System.out.println(ss.length);//3
		System.out.println(ss[2]);//javascript
		
		String s2[] = {"aa","cc","dd","ee"};
		String[] s3 = new String[6];
		System.out.println(s3[1]);//null
		
		//二维数组
		double[][] ds = new double[][] {{10,20,30},{60,70,80},{11,22,33,44,55,66}};
		
		//System.out.println(ds[1][5]);//异常错误
		System.out.println(ds[2][5]);//66.0

	}

}

package cn;

import java.util.Date;
import java.util.Scanner;

public class Arr2 {

	public static void main(String[] args) {
		// java 中 java.lang.Object 此类为所有类的父类,(基类)
		Object[] os = { 1, 2.0, "java", 'c', true, new Date(), new Scanner(System.in) };

		Scanner sc = (Scanner) os[os.length - 1];
		int t = sc.nextInt();
		System.out.println(t);

	}

}

  • 数组遍历

    package cn;
    
    import java.util.Arrays;
    import java.util.Random;
    
    public class Arr3 {
    
    	public static void main(String[] args) {
    		int[] ns = new int[10];
    		Random rand = new Random();
    		for(int i=0;i<ns.length;i++) ns[i] = rand.nextInt(100)+1;
    		System.out.println(Arrays.toString(ns));
    		
    		//数组遍历输出
    		for(int i : ns) {
    			System.out.println(i);
    		}
    
    	}
    
    }
    
    

4.2 java.util.Arrays工具类

package cn;

import java.util.Arrays;

public class Arr5 {

	public static void main(String[] args) {
		// int数组 简单类型
		int[] nn = { 10, 5, 6, 2, 1, 20, 15, 30 };
		System.out.println(Arrays.toString(nn));
		Arrays.sort(nn);// 升序
		System.out.println(Arrays.toString(nn));

		// Integer数组 对象类型 Integer 是int的包装器类
		Integer[] n2 = { 10, 5, 6, 2, 1, 20, 15, 30 };
		System.out.println(Arrays.toString(n2));
		Arrays.sort(n2);// 升序
		System.out.println(Arrays.toString(n2));
		Arrays.sort(n2, (a, b) -> b - a); // 降序
		System.out.println(Arrays.toString(n2));

		int a = 10;
		Integer b = 20;

		Integer[] cc = new Integer[nn.length];
		for (int i = 0; i < cc.length; i++) {
			cc[i] = nn[i];
		}
		Arrays.sort(cc);
		System.out.println(Arrays.toString(cc));
		Arrays.sort(cc, (x, y) -> y - x);
		System.out.println(Arrays.toString(cc));

	}

}

Student.java 类

package cn;

public class Student {
	private String sno;
	private String sname;
	private int score;
	public String getSno() {
		return sno;
	}
	public void setSno(String sno) {
		this.sno = sno;
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	public int getScore() {
		return score;
	}
	public void setScore(int score) {
		this.score = score;
	}
	public Student(String sno, String sname, int score) {
		super();
		this.sno = sno;
		this.sname = sname;
		this.score = score;
	}
	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}
	@Override
	public String toString() {
		return "Student [sno=" + sno + ", sname=" + sname + ", score=" + score + "]";
	}
	
}

排序,升序降序

package cn;

import java.util.Arrays;

public class Arr6 {

	public static void main(String[] args) {
		String[] ls = { "python", "c", "go", "perl", "php", "java", "javascript", "html", "css", "mysql" };
		System.out.println(Arrays.toString(ls));
		Arrays.sort(ls);// 升序
		System.out.println(Arrays.toString(ls));
		Arrays.sort(ls, (a, b) -> b.compareTo(a));// 自然排序 降序
		System.out.println(Arrays.toString(ls));

		Arrays.sort(ls, (a, b) -> a.length() - b.length());// 按字符个数,升序
		System.out.println(Arrays.toString(ls));
		Arrays.sort(ls, (a, b) -> b.length() - a.length());// 按字符个数,降序
		System.out.println(Arrays.toString(ls));

		Student[] sts = new Student[3];
		sts[0] = new Student("10","李四",80);
		sts[1] = new Student("11","张三丰",30);
		sts[2] = new Student("12","赵强",90);
		System.out.println(Arrays.toString(sts));
		Arrays.sort(sts,(a,b)->a.getScore()-b.getScore());
		System.out.println(Arrays.toString(sts));
		Arrays.sort(sts,(a,b)->b.getScore()-a.getScore());
		System.out.println(Arrays.toString(sts));
	}

}

4.3 数组排序

面试题:声明10(1-100)随机整数的数组,遍历输出,冒泡排序,再次遍历输出。

package cn;

import java.util.Arrays;
import java.util.Random;

public class Arr7 {

	public static void main(String[] args) {
		int[] num = new int[10];
		System.out.println(Arrays.toString(num));
		// 赋值
		Random rand = new Random();
		for (int i = 0; i < num.length; i++)
			num[i] = rand.nextInt(100) + 1;
		System.out.println(Arrays.toString(num));

		// 排序算法  冒泡排序,降序
		for (int m = 0; m < num.length; m++) {
			for (int n = 0; n < num.length - m - 1; n++) {
				if (num[n] < num[n + 1]) {
					int t = num[n];
					num[n] = num[n + 1];
					num[n + 1] = t;
				}
			}
		}

		System.out.println(Arrays.toString(num));
	}

}

4.4 作业

  1. 求出数组最大值,最小值
  2. 数组排序工具类Arrays使用
  3. 冒泡排序
  • 19
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梁云亮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值