1、数组的定义
连续存储的相同类型的数据,用于一个变量管理多个数据。
/**
* 数组练习
*/
public class Demo01 {
public static void main(String[] args) {
//创建一个数组,长度为100,类型是整型int
int[] arr1 = new int[100];
//类型为(double)双精度浮点类型,数组长度为50
double[] arr2 = new double[50];
//类型为字符串类型数组,数组长度为20,可以存储20个字符串的数组
String[] arr3 = new String[20];
arr1[0] = 99; //给数组的第一个位置的元素赋值
arr2[0] = 51.2;
arr3[0] = "SmallG";
System.out.println(arr1[0] + arr2[0]); //数组中的元素可以进行运算
//向字符串数组中存放十个字符串
for (int i=0;i<10;i++){
arr3[i] = "SmallG"+i;
System.out.println(arr3[i]);
}
//向arr2中存放20个元素
for (int i = 0;i<20;i++){
arr2[i]=i+0.3;
System.out.println(arr2[i]);
}
}
}
2、定义数组
数据类型[] 数组名 = new 数据类型[数组长度];
在定义数组的时候,数据类型前后保持一致,使用过程中数据类型保持不变。数组中的各个数据称为元素
3、数组元素的默认值
在数组定义完成后,其中每个元素自动完成初始化为默认值。
默认值为:
int-----------0
double--------0.0
string--------null
boolean-------false
char----------空字符
练习:
/**
* 数组默认值练习
*/
public class Demo02 {
public static void main(String[] args) {
int[] arr1 = new int[100];
System.out.println(arr1[0]); //0
double[] arr2 = new double[100];
System.out.println(arr2[0]); //0.0
String[] s = new String[20];
System.out.println(s[0]); //null
char []arr3 = new char[10];
System.out.println(arr3[0]);
}
}
4、数组的遍历
/**
* 数组的遍历
*/
public class Demo03 {
public static void main(String[] args) {
int[] arr = new int[100];
for (int i = 0; i < arr.length; i++) {
arr[i] = i;
System.out.println(arr[i]);
}
}
}
5、静态初始化数组
/**
* 静态初始化数组
*/
public class Demo04 {
public static void main(String[] args) {
//动态初始化数组的缺点,太麻烦
//静态初始化数组,直接数组初始化并赋值
int[] arr1 = {1, 2, 3, 4, 5};
for (int i = 0; i < arr1.length; i++) {
System.out.println(arr1[i]);
}
}
}
6、ArrayList 集合
基于数组实现的线性表集合,在创建的时候不用分配空间,自动扩展存储空间,底层使用数组的实现。相比数组更方便,可以对里面的数据进行更改。
使用步骤:
- 导入API组件:采用import java.util.ArrayList;
- 创建API组件:ArrayList
list = new Arraylist<>(); - 使用API组件:list.add("Smallg");
/**
* ArrayList集合
* ArrayList是一个有序集合
*/
public class Demo05 {
public static void main(String[] args) {
//创建组件
ArrayList<String> names = new ArrayList();
//存入数据
names.add("SmallG0");
names.add("SmallG1");
names.add("SmallG2");
names.add("SmallG3");
names.add("SmallG4");
//打乱集合中的顺序
Collections.shuffle(names);
//取出数据
for (int i = 0; i < names.size(); i++) {
System.out.println(names.get(i));
}
}
}
(1)交换ArrayList集合中的两个数据
/**
* 交换ArrayList集合中的两个数据
*/
public class Demo06 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("SmallG01");//0
list.add("SmallG02");//1
list.add("SmallG03");//2
list.add("SmallG04");//3
list.add("SmallG05");//4
System.out.println(list);
//交换2和4的位置
String t = list.set(2,list.get(4));
list.set(4,t);
System.out.println(list);
//嵌套处理:执行步骤,1、list.get(1),2、list.set(3,list.get(1)),3....
list.set(1,list.set(3,list.get(1)));
System.out.println(list);
}
}