数组
一、静态初始化
1、数组的静态初始化的写法
数据类型【】 数组名 = {元素1,元素2,元素3};
数据类型【】 数组名 = new 数据类型【】 {元素1,元素2,元素3};
2、数组属于什么类型,数组变量名中存储的是什么?
属于引用数据类型,存储的是数组在内存中的地址信息
二、动态初始化数组
1、数组的动态初始化的写法
数据类型【】 数组名称 = new 数据类型 【数组长度】;
2、两种数组定义时的特点和场景有什么区别?
当前已经知道存入的元素值,用静态初始化。
当前还不知道要存入哪些数据,用动态初始化。
3、动态初始化元素默认值规则
基本类型:
byte、short、char、long 默认值为0
float、double 默认值为0.0
boolean 默认值为false
引用类型:
类、接口、数组、string 默认值为null
三、数组遍历及书写技巧
public class demo4 {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
//快捷键:arr.fori
for (int i = 0; i < arr.length; i++) {
//快捷键:arr[i].sout
System.out.println(arr[i]);
}
}
}
四、案例:利用数组遍历求和
需求:某部门5名员工的销售额分别是:11、21、31、41、51,请计算出他们部门的总销售额。
public class demo5 {
public static void main(String[] args) {
int[] money = {11,21,31,41,51};
int sum = 0;
for (int i = 0; i < money.length; i++) {
sum += money[i];
}
System.out.println(sum);
}
}
五、利用数组求最值
注意点:定义变量记录最大值时,这个变量建议存储第一个元素值作为参照
public class demo6 {
public static void main(String[] args) {
int[] score = {12,52,32,2,22};
int max = score[0];
for (int i = 1; i < score.length; i++) {
if (score[i] > max){
max = score[i];
}
}
System.out.println("数组中最大的元素为:" + max);
}
}
六、猜数字游戏
需求:随机生成1-20之间的五个数(可重复),然后让大家猜测数字:
未猜中提示:"未命中",并要求继续猜测
猜中后提示:"哇!金色传说",并输出该数据第一次出现的位置,且输出全部五个数据。
import java.util.Random;
import java.util.Scanner;
public class demo7 {
public static void main(String[] args) {
int array[] = new int[5];
Random r = new Random();
for (int i = 0; i < array.length; i++) {
array[i] = r.nextInt(20) + 1;
}
Scanner sc = new Scanner(System.in);
OUT:
while (true){
System.out.println("请您输入一个1-20之间的整数");
int guess = sc.nextInt();
for (int i = 0; i < array.length; i++) {
if (guess==array[i]){
System.out.println("哇!金色传说");
System.out.println("您的数据索引是:" + i);
break OUT;
}
}
System.out.println("请重新猜测");
}
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + "\t");
}
}
}
七、随机排名
某公司开发部五名开发人员,要进行项目进展汇报演讲,现在采取随机排名后进行汇报。请先依次录入五名员工的工号,然后展示出一组随机的排名顺序。
import java.util.Random;
import java.util.Scanner;
public class demo8 {
public static void main(String[] args) {
int[] array = new int[5];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < array.length; i++) {
System.out.println("请输入第" + (i + 1) + "个员工的号码");
int gethaoma = sc.nextInt();
array[i] = gethaoma;
}
Random r = new Random();
for (int i = 0; i < array.length; i++) {
int suiji = r.nextInt(array.length);
int temp = array[i];
array[i] = array[suiji];
array[suiji] = temp;
}
System.out.println("随机的结果为:");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + "\t");
}
}
}
八、冒泡排序
public class demo9 {
public static void main(String[] args) {
int[] array ={9,5,2,7};
for (int i = 1; i <= array.length - 1; i++) {
for (int j = 0; j < array.length - i; j++) {
if (array[j] > array[j+1]){
int temp = array[j+1];
array[j+1] = array[j];
array[j] = temp;
}
}
}
System.out.print("冒泡排序的结果是:");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + "\t");
}
}
}