/*
* java集合
* 对于数组的存储,一个关键的制约因素就是无法动态定义数组的大小,解决的办法就是使用链表或者集合
* java中有一系列的集合诶可以让我们实现一些数组无法实现的功能
* java的集合类中提供了很多个方法,但是常用的只有那么几个,HashMap(),HashTable()等
* java集合类分为以下几种:
* list结构的集合类:ArrayList类、Vector类、 Stack类
* Map结构的集合类:HashMap/HashTable类等
* Set结构的集合类:HashSet/TreeSet类
* Queue结构的集合:Queue接口
* 使用ArrayList():ArrayList()相当于一个动态数组,存储你加的每一个object的引用,可以重复添加相同的对象
* ArrayList()的使用:创建,添加,删除,遍历
*/
//使用java集合要引入的包是java.util java集合都在这个包中
import java.util.*;
public class Demo3 {
public static void main(String[] args){
//定义ArrayList对象
ArrayList al=new ArrayList();
//显示arraylist的大小
System.out.println("al的大小:"+al.size());
//向al中加入数据(数据类型不惜是object)
Clerk clerk1=new Clerk("sevend",20,12000);
Clerk clerk2=new Clerk("kenvon",20,13000);
Clerk clerk3=new Clerk("chanxiaoxi",20,13000);
//将clerk1加入到sl中
al.add(clerk1);
al.add(clerk2);
al.add(clerk3);
//如何访问al中的对象
//指定访问
//Clerk temp=al.get(0);//类型不匹配的错误,所以不能够这样访问,可以强制转换
Clerk temp=(Clerk)al.get(0);
System.out.println(temp.getName());
//遍历所有的信息,使用循环
for(int i=0;i<al.size();i++){
Clerk temp2=(Clerk)al.get(i);
System.out.println("姓名:"+temp2.getName()+"年龄:"+temp2.getAge()+"工资:"+temp2.getSal());
}
//删除里面的元素
al.remove(1);
//重新遍历
System.out.println("删除后遍历的结果:");
for(int i=0;i<al.size();i++){
Clerk temp2=(Clerk)al.get(i);
System.out.println("姓名:"+temp2.getName()+"年龄:"+temp2.getAge()+"工资:"+temp2.getSal());
}
}
}
//定义一个员工类
class Clerk{
private String name;
private int age;
private float sal;
public Clerk(String name,int age,float sal){
this.name=name;
this.age=age;
this.sal=sal;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
public float getSal(){
return sal;
}
}