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 作业
- 求出数组最大值,最小值
- 数组排序工具类Arrays使用
- 冒泡排序