Java-----集合
集合框架
因为数组是静态的,它的大小在初始化的就设定好了的,而集合是动态的,可以随时添加。
案例:添加员工,利用ArrayList类,
package com.panhui;
import java.util.*;
publicclassDemo9_26_1 {
publicstatic void main(String[]args) {
// TODO Auto-generated method stub
//定一个ArrayList对象(跟数组差不多)
ArrayListal=newArrayList();
//向al中加入数据(类型是Object)
Clerkclerk1=newClerk("宋江",45,1000);
Clerkclerk2=newClerk("panhui",18,1000);
//将clerk1加入a1中
al.add(clerk1);
al.add(clerk2);
//显示大小
System.out.println("al大小是:"+al.size());
//如何访问a1中的对象(数据)
//访问第一个对象
Clerktemp=(Clerk)al.get(0);
System.out.println("名字是:"+temp.getName());
System.out.println('\n');
System.out.println("循环遍历:");
//循环遍历
for(inti = 0;i < al.size() ;i++)
{
Clerktemp1= (Clerk)al.get(i);
System.out.println("名字是:"+temp1.getName());
System.out.println("年龄是:"+temp1.getAge());
System.out.println("工资是:"+temp1.getSal());
System.out.println('\n');
}
//如何删除一个对象
al.remove(1);
System.out.println("======删除panhui");
System.out.println('\n');
System.out.println("删除后循环遍历:");
for(inti = 0;i < al.size() ;i++)
{
Clerktemp1= (Clerk)al.get(i);
System.out.println("名字是:"+temp1.getName());
System.out.println("年龄是:"+temp1.getAge());
System.out.println("工资是:"+temp1.getSal());
System.out.println('\n');
}
}
}
//定义一个员工的类
class Clerk
{
privateStringname;
privateintage;
privatefloatsal;
publicClerk(Stringname,intage,floatsal)
{
this.name =name;
this.age =age;
this.sal =sal;
}
publicString getName() {
returnname;
}
publicvoid setName(String name) {
this.name =name;
}
publicint getAge() {
returnage;
}
publicvoid setAge(intage) {
this.age =age;
}
publicfloat getSal() {
returnsal;
}
publicvoid setSal(floatsal) {
this.sal =sal;
}
}
结果:
内存的变化
知识点:
1, ArrayList类,既可以像链表插入类,类的下标从0开始,也可以直接像访问数组一样访问,直接访问下标。
2, 插入相同的类的时候,是不影响的,因为插入的类是按顺序编号的。
3, 插入一个类,al.add(clerk1);
遍历全部类的内容://循环遍历
for(inti = 0;i < al.size() ;i++)
{}
删除插入的类:al.remove(类的编号)