一、一维数组
声明数组变量
/**
*dataType[] arrayRefVar; // 首选的方法
*dataType arrayRefVar[]; // 不推荐
**/
int[] array;
创建数组
// arrayRefVar = new dataType[arraySize];
- 使用 dataType[arraySize] 创建了一个数组。
- 把新创建的数组的引用赋值给变量 arrayRefVar。(申请一个空间,赋值地址)
数组变量的声明,和创建数组可以用一条语句完成,如下所示:
//dataType[] arrayRefVar = new dataType[arraySize];
//dataType[] arrayRefVar = {value0, value1, ..., valuek};
int[] myList = new int[5];
int[] array={0,1,2,3,4}
数组的元素是通过索引访问的。
数组索引从 0 开始,所以索引值从 0 到 arrayRefVar.length-1。
处理数组
int[] myList ={0,1,2,3,4}
// 打印所有数组元素
for (int i = 0; i < myList.length; i++) {
System.out.println(myList[i] + " ");
}
JDK 1.5 引进了一种新的循环类型,被称为 For-Each 循环或者加强型循环,它能在不使用下标的情况下遍历数组。
int[] myList ={0,1,2,3,4}
// 打印所有数组元素
for (int element: myList) {
System.out.println(element);
}
【重点】
数组是引用类型,引用数据类型存储的是地址
public static void main(String[] args) { int [] arr={1,2,3,4,5}; //传递的地址 int [] arr2=arr; for(int i=0;i<arr2.length;i++){ System.out.println(arr2[i]); } //修改数组中元素的值 arr2[3]=88; //88 System.out.println(arr2[3]); //88 System.out.println(arr[3]); }
二、二维数组
public static void main(String[] args) {
int [] [] classes=new int [2][2];
//第一个班级
classes[0][0]=80;
classes[0][1]=75;
//第二个班级
classes[1][0]=60;
classes[1][1]=75;
//classes.length=2(行的个数)
System.out.println(classes.length);
//取值
//循环每个班级
for(int i=0;i<classes.length;i++){
int [] stus=classes[i];
System.out.println("第"+(i+1)+"个班级的成绩:");
//循环每个学生
for(int j=0;j<stus.length;j++){
System.out.print(stus[j]+"\t");
}
System.out.println();
}
}
三、对象数组
Student[] stus=new Student[3]
数组有两个缺点:
- 数据放多了,会报数组越界的异常
- 数据少了,如果是对象类型,会报空指针异常
- 数组一旦定好了之后,其数组长度就不可发生改变
集合ArrayList
- 集合是存放多个数据的容器,但是比数组更加方便,其容器的大小是可以随着元素个数的变化而变化
- 集合可以方便数据的操作,添加,查找,修改,删除
- 集合中只能存放对象类型
//创建ArrayList对象
//在声明的时候要明确集合中存放的是什么对象类型
ArrayList<Student> list=new ArrayList<Student>();
//add(E e) ,往集合中添加元素
Student s1=new Student("jack",20,"男");
list.add(s1);
//get(int index) 取出集合中某一个元素
Student s=list.get(1);
System.out.println(s.getName()+","+s.getAge()+","+s.getSex());
//size() 集合的元素个数
System.out.println("该集合中有:"+list.size()+"个元素");
//set(int index, E element) 修改集合中的某个元素
Student ss=new Student("obama",40,"男");
list.set(1,ss);
s=list.get(1);
System.out.println(s.getName()+","+s.getAge()+","+s.getSex());
//remove(int index) 删除某个元素
list.remove(1);
//遍历集合中的所有元素
for(int i=0;i<list.size();i++){
Student stu=list.get(i);
System.out.println(stu.getName()+"-->"+stu.getAge()+"-->"+stu.getSex());
}