数组
数组: 内存空间连续的,相同数据类型的集合。
数组本身就是一种数据类型,可以存放数组。(基本数据类型和引用数据类型)
数组的使用
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));
}
}