数组
一。一维数组的声明和初始化
声明方式:
String[] names;
int age[];
静态初始化:初始化和赋值同时进行
names = new String[]{"aa","cc"};
//下面的声明和初始化不能分开进行
String[] ps = {"aa","cc"};
动态初始化:初始化和赋值分开进行
String[] ps = new String[3]; //3指的是数组的长度
注意:无论是静态初始化还是动态初始化数组一旦创建成功长度不可变。
二. 调用数组中的元素 : 通过索引值调用数组中的元素。索引值(下角标)是从0开始到(数组的长度-1)
int[] numbers = {1,2,3,4,5};
取值:
int n = numbers[0];
赋值:
numbers[0] = 100;
三. 数组的属性 – length(数组的长度)
String[] persons = {“小苍”,“小波”,“小饭”};
int len = persons.length;
四. 数组的遍历 : 根据数组的索引值进行遍历
String[] persons = {“小苍”,“小波”,“小饭”};
for(int i = 0; i < persons.length; i++){
System.out.println(persons[i]);
}
五. 数组元素的默认值
byte short int long -> 0
float double -> 0.0
char -> \u0000
boolean -> false
引用数据类型(数组,接口,类) -> null
案例1:
package com.atguigu.java;
/**
数组 :相同数据类型的组合
说明:
1.数组是引用数据类型
2.数组中的元素可以是基本数据类型也可以是引用数据类型。
*/
public class ArrayTest {
public static void main(String[] args) {
//1.数组的声明和初始化
String[] names; //建议使用第一种声明类型
int age[];
//初始化
//①静态初始化 :初始化和赋值同时进行
names = new String[]{
"小泽老师","小苍老师","小波老师","小泷老师"};
//下面的方式:声明和初始化不能分开写
int[] score = {
1,20,100,90};
//②动态初始化 :初始化和赋值分开进行(先不放数据)
age = new int[5]; //5指的是数组的长度(可以放几个元素)
//2.获取数组中的元素:通过使用数组的下角标(索引值)来获取
//下角标(索引值)是从0开始的到数组的长度 - 1
//获取数组中的数据:
String name = names[1]; //用name承接取出来的值
System.out.println(name);
//给数组中的元素赋值
age[0] = 1000;
System.out.println(age[0]);
//3.数组的属性 :length - 数组的长度
int len = age.length;
System.out.println(len);
System.out.println(names.length);
//4.遍历数组中的所有元素
for(int i = 0; i < names.length; i++){
//0 ~ 3
System.out.println(names[i]);
}
System.out.println("---------------------------------------");
//5.数组元素的默认值
/*
* byte,short,int,long -> 0
*
* float,double -> 0.0
*
* char -> \u0000
*
* boolean -> false
*
*
* 引用数据类型 :null
*
*/
byte[] b = new byte[2];
System.out.println(b[0]);
System.out.println(age[2]);
boolean[] bs = new boolean[2];
System.out.println(bs[0]);
char[] cs = new char[2];
System.out.println("ddd"+ cs[0] + "acc");
String[] str = new String[2];
System.out.println(str[0]);
}
}
案例2:一维数组的内存解析
package com.atguigu.java;
/**
* 一维数组的内存解析
*/
public class ArrayTest2 {
public static void main(String[] args) {
String[] names = new String[3];
names[0] = "吴京";
names[2] = "章子怡";
String[] names2 = names;
names2[1] = "志玲";
names2 = new String[3];
for(int i = 0; i < names.length; i++){
System.out.println(names[i]);
}
System.out.println("-------------names2----------------");
for(int i = 0; i < names2.length; i++){
System.out.println(names2[i]);
}
}
}
练习1:
package com.atguigu.exer;
/**
需求:创建一个char类型的26个元素的数组,分别 放置'A'-'Z‘。
使用for循环访问所有元素并打印出来。
提示:char类型数据运算 'A'+1 -> 'B','0'+1 -> ‘1‘
*/
public class ExerTest1 {
public static void main(String[] args) {
//创建一个数组
char[] cs = new char[26];
char c = 'A';
//使用循环赋值
for (int i = 0; i < cs.length