数组:Array在一个容器中可以存放多个数据
符号:[ ]
注意事项:容器中存放的数据必须是同一类型
语法:
数组需要new
写法:
- 数据类型[ ] 变量名=new 数据类型[声明一个数]{ el1,el2…} ;//边声明边赋值
- 数据类型[ ] 变量名=new 数据类型[数];
案例:
//创建一个整数类型的数组,数组中存放5个元素
//并将数组赋值给变量arr1
int [] arr1 =new int[]{11,22,33,44,55};
//拓展:分别创建下面这些类型的数组
int [] arr1 =new int[]{11,22,33,44,55};
byte [] arr2 =new byte[]{23,34,55,66};
short []arr3=new short[]{1,2,3,5};
long []arr4=new long[]{123343545,142534586,1234562345,1234567};
float[]arr5=new float[]{122,345,3456,567,34567};
double[]arr6=new double[]{11.11,22.3,33.3};
char[]arr7=new char[]{'a','b','v'};
String[]arr8=new String[]{"abcd","dffg","ehfenbfh"};
数组存放在堆区属于引用数据类型(数组,对象,String)
数组的最大索引值=数组长度-1
案例:
public class Class1 {
public static void main(String[] args) {
//声明一个数组
String[] names=new String[3];
//存储数据
names[0]="小王";
names[1]="小张";
names[2]="小李";
//遍历数组
System.out.println(names[0]);
System.out.println(names[1]);
System.out.println(names[2]);
}
}
- 为什么要使用数组?
单个的变量,满足不了存储大批量数据的需求
- 数组的概念
在内存上开辟一连串连续的空间用来存放相同类型的数据
三.names.length用法:
names.length()
案例:
public class Class2 {
public static void main(String[] args) {
//声明一个数组
String[]names=new String[3];
//存储数据
names[0]="小王";
names[1]="小张";
names[2]="小李";
//遍历数组
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
}
}
案例:
//动态输入姓名
import java.util.Scanner;
public class Class3 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String[]names=new String[3];
for (int i = 0; i < names.length; i++) {
System.out.println("请输入第"+(i+1)+"个姓名:");
names[i]=input.next();
}
System.out.println("您输入的姓名如下:");
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
}
}
案例://判断一个数存在不存在于数组
简单版:
import java.util.Scanner;
public class Class4 {
public static void main(String[] args) {
int[] nums = new int[]{33, 78, 99, 39};
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数:");
int num = input.nextInt();
for (int i = 0; i < nums.length; i++) {
if (nums[i] == num) {
System.out.println("存在");
} else {
System.out.println("不存在");
}
}
}
}
完善版:
import java.util.Scanner;
public class Class5 {
public static void main(String[] args) {
int[] nums = new int[]{33, 78, 99, 39};
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数:");
int num = input.nextInt();
Boolean flag=false;//用于记录存在或不存在的状态
for (int i = 0; i < nums.length; i++) {
if (nums[i] == num) {
flag = true;
}
}
if (flag=true){
System.out.println("存在");
} else {
System.out.println("不存在");
}
}
}
案例:
//数字炸弹游戏:
import java.util.Random;
import java.util.Scanner;
public class yx {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Random r = new Random();
int num = r.nextInt(100) + 1;
System.out.println("数字炸弹游戏开始啦:");
System.out.println("猜数,请输入要猜的数字:");
int num2 = input.nextInt();
while (num!= num2){
if (num2>num){
System.out.println("猜大啦!");
}else{
System.out.println("猜小啦!");
}
System.out.println("数字炸弹游戏开始啦:");
System.out.println("猜数,请输入要猜的数字:");
num2 = input.nextInt();
}
System.out.println("中奖啦!");
}
}