数组是存储多个变量的容器(集合)
本章内容是一维数组的建立和小demo
/*
* 数组
* 概念:1.数组是存储多个变量的容器(集合),且这些变量的数据类型一致
* 2.数组既可以存储基本数据类型,也可以存储引用数据类型
*
* */
public class ArrayDemo {
public static void main(String[] args) {
// demo01();
// demo02();
// demo03();
demo04();
// demo05();
}
//定义一个数组
/*
* 使用数组前必须先初始化
* 初始化:给数组元素分配内存空间,并赋值
* 动态初始化:只指定数组长度,由系统为数组指定初始值
* 静态初始化:指定每个数组元素的初始值,由系统决定数组长度
* */
private static void demo01() {
int[] arr = new int[3]; //动态初始化
// int[] arr2 =new int[1,2,3];
/*
* 通过数组索引就可以得到数组的每个值,索引就是编号,从0开始,最大为长度-1
* */
System.out.println(arr); //输出:[I@15db9742 地址值
System.out.println(arr[0]); //输出第一个数
//给数组元素赋值
arr[2] = 3;
arr[0] = 1;
System.out.println(arr[2]);
System.out.println(arr[0]);
}
/*
* 将第一个数组的地址值赋给第三个数组,通过第三个数组的名称 把元素重复赋值
* */
private static void demo02() {
int[] arr = new int[2];
int[] arr2 = new int[2];
int[] arr3 = arr;
arr[0] = 1;
arr[1] = 2;
arr2[0] = 3;
arr2[1] = 4;
arr3[0] = 4;
arr3[1] = 4;
System.out.println(arr[1]);
}
//静态初始化
private static void demo03() {
int[] arr = {1,2,3};
}
//数组索引越界:访问了不存在的索引
private static void demo04() {
int[] arr = {1,2,3};
System.out.println(arr[3]);
}
//引用类型的常量:空常量:null
//给了null,数组就不再指向堆内存,空指针
private static void demo05() {
int[] arr = null;
System.out.println(arr[3]);
}
}
关于数组的一些demo
import java.util.Scanner;
public class ArrayTest {
public static void main(String[] args) {
// demo01();
// demo02();
// demo03();
// demo04();
int[] arr = {1,2,3};
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
System.out.println(demo05(arr,num));
}
//数组遍历
private static void demo01() {
int[] arr = {1,2,3};
for(int i=0; i<arr.length; i++){
System.out.print(arr[i]+" ");
}
}
//数组求最值
private static void demo02() {
int[] arr = {11,5,3,44};
int max = arr[0];
for(int i=1; i<arr.length; i++){
if(arr[i] > max){
max = arr[i];
}
}
System.out.println(max);
}
//数组冒泡排序
private static void demo03() {
int[] arr = {11,5,3,15};
for(int i=0; i<arr.length-1; i++){ //外层控制用哪个数排
for(int j=0; j<arr.length-1-i; j++){ //内层控制这个数与谁比大小,比几次
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(int num:arr){
System.out.print(num+" ");
}
}
//数组元素逆序
private static void demo04() {
int[] arr = {1,2,3,4,5,6,7};
for(int i=0; i<arr.length; i++){
int num = arr.length;
if(i >= num/2){
break;
}
int temp = arr[i];
arr[i] = arr[num-1-i];
arr[num-1-i] = temp;
}
for(int a:arr){
System.out.println(a);
}
}
//基本查找
public static int demo05(int[] a,int value){
int index = -1; //定义一个索引
for(int i=0; i<a.length; i++){
if(a[i] == value){
index = i;
}
}
return index; //返回
}
}