Demo1:
/**
* @Author: ChaoKeAiMuZhi
* @Date: 2020/7/14 14:04
* @Description:
**/
public class Demo1 {
public static void main(String[] args) {
//声明
int[] a;
String b[];
double []c;
//分配空间,使用new关键字来分配空间,
// new关键字是java中优先级最高的,使用一个东西要先创建好
a=new int[5];
b=new String[6];
c=new double[4];
//赋值,指定每一个下标
a[0]=10;
a[1]=14;
a[2]=18;
a[3]=24;
a[4]=33;//可以有一部分不赋值
//声明的同时分配空间
char[] ch=new char[10];
float[] f={11.1f,22.2f};//声明分配空间并赋值
//基本上不用
int []d=new int[]{1,2,3};
/*int[]g;
g={1,2,3};//Array initializer is not allowed here*/
}
}
Demo1_1:
/**
* @Author: ChaoKeAiMuZhi
* @Date: 2020/7/14 14:50
* @Description:各种状态下的数组地址
**/
public class Demo1_1 {
public static void main(String[] args) {
int[] a=null;
String[] b=new String[3];
char[] c={'a','b','c'};
double[] d={1.2,2.0};
b[3]="abc";//数组越界 异常
System.out.println(a);
System.out.println(b);
System.out.println(c);//char类型可以直接打印出值,char数组相当于String字符串
System.out.println(d);
}
}
Demo3:
import java.util.Scanner;
/**
* @Author: ChaoKeAiMuZhi
* @Date: 2020/7/14 15:51
* @Description:
**/
public class Demo3 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int[]scores=new int[5];
for (int i = 0; i <scores.length ; i++) {
System.out.println("请输入第"+(i+1)+"个值");
scores[i]=sc.nextInt();
}
//scores.fori
for (int i = 0; i < scores.length; i++) {
System.out.print(scores[i]+",");
}
System.out.println();
//求最大值
int max=scores[0];
for (int i = 1; i < scores.length; i++) {
if(scores[i]>max){
max=scores[i];
}
}
System.out.println("最大值为:"+max);
}
}
Demo4:
增删改查
数组范围内:
增:数组的定义、赋值
删;程序运行结束,不在内存当中了
改:对数组元素的重新赋值,或者地址改变
查:查看数组的地址和元素的值
数组元素的扩充/长度范围外的:长度要变化(新的数组)
增:元素个数的增加
删:元素个数的减少
import java.util.Arrays;
import java.util.Scanner;
/**
* @Author: ChaoKeAiMuZhi
* @Date: 2020/7/14 16:06
* @Description:数组增加元素
**/
public class Demo4 {
public static void main(String[] args) {
int[] a={99,85,82,63,60};
int[] b=new int[6];
for (int i = 0; i < a.length; i++) {
b[i]=a[i];
}
//把数组转成的String字符串
System.out.println(Arrays.toString(b));
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个数:");
int num = sc.nextInt();
boolean isInsert=false;
for (int i = b.length-2; i >=0; i--) { //从后向前遍历
if(num>b[i]){
b[i+1]=b[i];//下标后移
}else{
b[i+1]=num;
isInsert=true;
break;
}
}
if(isInsert==false){
b[0]=num;
}
System.out.println(Arrays.toString(b));
}
}
Demo5:
import java.util.Arrays;
/**
* @Author: ChaoKeAiMuZhi
* @Date: 2020/7/14 17:16
* @Description:
**/
public class Demo5 {
public static void main(String[] args) {
/*选择排序逻辑:
* 从前向后对每一个下标对应的元素作为基准位
* 与后面所有的元素进行比较,找出最小值
* 与当前下标的元素进行交换
* 进行下一次循环
* */
int[] a={1,3,2,5,8,4};
//i代表选取的基准位,j代表的在动的
for(int i=0;i<a.length-1;i++){
int min=a[i];
int tmp=i;
for (int j = i+1; j <a.length ; j++) {
if(min>a[j]){
min=a[j];
tmp=j;
}
}
a[tmp]=a[i];
a[i]=min;
}
System.out.println(Arrays.toString(a));
}
}
Demo6:
import java.util.Arrays;
/**
* @Author: ChaoKeAiMuZhi
* @Date: 2020/7/14 17:37
* @Description:插入排序
**/
public class Demo6 {
public static void main(String[] args) {
//逻辑 从第二位开始,向前比较,进行插入逻辑
int[] a={1,3,2,5,8,4};
for (int i = 1; i <a.length ; i++) {
int tmp=a[i];
boolean isInsert=false;
for (int j = i-1; j >=0 ; j--) {
//如果遇到比自己大的,大的值就后移
//如果遇到比自己小的,就在后方插入
//如果一直没插入,就插入在首位
if(tmp<a[j]){
a[j+1]=a[j];
}else{
a[j+1]=tmp;
isInsert=true;
break;
}
}
if(!isInsert){
a[0]=tmp;
}
}
System.out.println(Arrays.toString(a));
}
}
Test1:
/**
* @Author: ChaoKeAiMuZhi
* @Date: 2020/7/14 14:14
* @Description:计算20位同学的平均分,同时打印每一个分数
**/
public class Test1 {
public static void main(String[] args) {
int[] scores=new int[30];
//使用随机数对数组赋值
for(int i=0;i<30;i++){
scores[i]=(int)(Math.random()*10+90);
}
//遍历查看数组中每一个元素
System.out.print("[");
for(int i=0;i<scores.length;i++){
if(i==scores.length-1){
System.out.println(scores[i]+"]");
break;
}
System.out.print(scores[i]+", ");
}
//计算平均分
double sum=0;
for(int i=0;i<scores.length;i++){
sum+=scores[i];
}
System.out.println("总分为"+sum+"\n平均分为"+sum/scores.length);
System.out.println("------------------------");
System.out.print("[");
//一般来说用于遍历,不能赋值,取不到下标
for(int a:scores){ //增强for循环
System.out.print(a+",");
}
System.out.println("]");
System.out.println(scores);
System.out.println(scores.hashCode());
}
}
Test2
import java.util.Scanner;
/**
* @Author: ChaoKeAiMuZhi
* @Date: 2020/7/14 15:03
* @Description:
**/
public class Test2 {
public static void main(String[] args) {
int[] num=new int[]{8,4,2,1,23,344,12};
int sum=0;
for (int i = 0; i <num.length ; i++) {
sum+=num[i];
System.out.print(num[i]+"\t");
}
System.out.println("数列中所有数值之和:"+sum);
boolean flag=false;
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个数:");
int id= sc.nextInt();
int i = 0;//
for (; i <num.length ; i++) {
if(id==num[i]){
flag=true;
break;
}
}
if(flag){ //i==num.length
System.out.println("数列中包含此数");
}else{
System.out.println("数列中不包含此数");
}
}
}
Test3
import java.util.Scanner;
/**
* @Author: ChaoKeAiMuZhi
* @Date: 2020/7/14 16:33
* @Description:
**/
public class Test3 {
public static void main(String[] args) {
int[] price=new int[4];
Scanner sc = new Scanner(System.in);
System.out.println("请输入四家店的价格:");
for (int i = 0; i < price.length; i++) {
System.out.print("第"+(i+1)+"家店的价格:");
price[i] = sc.nextInt();
}
int min=price[3];
for (int i = price.length-1; i >=0; i--) {
if(price[i]<min){
min=price[i];
}
}
System.out.println("最低价格为:"+min);
}
}
Test03:
import java.util.Arrays;
import java.util.Scanner;
/**
* @Author: ChaoKeAiMuZhi
* @Date: 2020/7/14 16:51
* @Description:从数组中删除一个元素
**/
public class Test03 {
public static void main(String[] args) {
int[] a={99,85,82,63,60};
int[] b=new int[4];
//如果要删哪个数,就把除那个数之外的赋值到b
Scanner sc=new Scanner(System.in);
System.out.println("请输入要删除的下标:");
int num=sc.nextInt();
int j=0;
for (int i = 0; i <a.length ; i++) {
if(i==num)continue;
b[j]=a[i];
j++;
}
System.out.println(Arrays.toString(b));
}
}
Test4:
import java.util.Scanner;
/**
* @Author: ChaoKeAiMuZhi
* @Date: 2020/7/14 16:57
* @Description:
**/
public class Test4 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入本月的消费记录:");
int[] num=new int[5];
int sum=0;
for (int i = 0; i < num.length; i++) {
System.out.print("请输入第"+(i+1)+"笔购物金额:");
num[i] = sc.nextInt();
sum+=num[i];
}
System.out.println("序号\t\t金额(元)");
for (int i = 0; i < num.length; i++) {
System.out.println(i+1+"\t\t"+num[i]);
}
System.out.println("总金额\t"+sum);
}
}