java_基础_集合

一、ArrayList集合的使用
1、使用ArrayList必须引入java.util.*这个包
2、使用时先创建一个ArrayList对象

ArrayList al=new ArrayList();

3、向创建的ArrayList对象中加入数据,类型为Object(为所有类的子类)
使用ArrayList对象中的add方法

//第一种
al.add(a);//其中a为要加入列表中的对象,加到列表的最后 //第二种
al.add(1,a);//1表示要插入的位置,其中位置之后的向后挪一个位置

4、删除其中的某个元素

remove(int index);//移除此列表中指定位置上的元素。向左移动所有后续 //元素(将其索引减 1)。 

5、遍历其中的所有元素

for(int i=0;i<al.size();i++)
    {
        Clerk temp=(Clerk)al.get(i);
        System.out.println(temp.getName());
    }
/*必须使用强制转换类型,因为al.get(int index)获得的是Object类型,是父类,必须转为子类。*/

6、ArrayList相当于一个动态数组,可以向其中增删元素,并且他和数组一样,也有长度,可以用*.size()来访问,也是从0开始的。

二、Vector集合

1、vertor集合与arraylist集合都属于List集合框架的,因此在使用时与arraylist集合都是类似的
2、与arraylist的不同之处
①vector是同步的,这个类的一些方法保证了vector中的对象是线程安全的,但这会影响执行的效率;而arraylist是异步的,不是线程安全的
②当增加的元素超出了目前的长度时,vector增长为原来的2倍,arraylist增长为原来的50%。

三、Hashmap集合

1、使用方法:

import java.util.*;
public class Hashmap1 {
    public static void main(String[] args) {        
        //创建一个HashMap 对象
        HashMap hm=new HashMap();
        //创建要加入hashmap的对象,假设为Emp对象
        Emp emp1=new Emp(1,2,2);
        Emp emp2=new Emp(2,2,3);

        //将emp放入hm中
        //其中 s001与emp1构成一对键值对
        //如果key相同,则会用后来的值替换原来的值,即hashmap不允许键值重复
        hm.put("s001", emp1);
        hm.put("s002", emp2);

        //如果你要查找编号是s002

        if(hm.containsKey("s002"))
        {
            System.out.println("又该员工");
            //如何取出该信息
            Emp emp=(Emp)hm.get("s002");
            System.out.println(emp.getAge());
        }
        else
        {
            System.out.println("no");
        }

        //遍历HashMap中所有的key和value
        //遍历时的顺序是无序的
        //iterator 定义一个迭代器
        Iterator it=hm.keySet().iterator();
        //hasNext返回一个布尔值,如果有下一个则返回true
        while(it.hasNext())
        {
            //取出键值对中的key
            String key=it.next().toString();
            //通过key取出value
            Emp emp=(Emp)hm.get(key);
            System.out.println(emp.getAge());
        }
    }
}

四、Hashtable集合

1、hashtable与hashmap同属于Map结构的结合,用法与hashmap类似。
2、与hashmap的不同点
①hashtable 是基于陈旧的Dictionary类的,hashmap是java 1.2引进的Map接口的一个实现
②hashtable是同步的,这个类的一些方法保证了hashtable中的对象是线程安全的,但这会影响执行的效率;而hashmap是异步的,不是线程安全的
③hashmap可以让你将空值作为一个表的条目的key或value,hashtable不行

你可能感兴趣的:(java)