Java(集合类)第一部分(List)

三种
Set,List,Map。
Set表示不允许容纳重复元素的集合。
List表示可以容纳重复元素的集合。
Map表示存储键/值对的集合,每个键/值对称为一项。

集合接口
Collection:集合框架的顶层接口定义了操作对象集合的共同方法
List:继承Collection,表示有序的,可包括重复元素的列表
Set:继承Collection,表示无序的,无重复元素的集合(数学上的含义)
SortedSet:继承Set,对Set中的元素进行排序

List类一般不能直接使用,可以直接使用的类是ArrayList,LinkedList,Vector,Stack。
ArrayList有如下构造函数:
ArrayList()用于建立一个空的数组列表。
ArrayList(Collection c)建立一个数组列表,该数组列表由集合c中的元素初始化。
ArrayList(int capacity)建立一个数组列表,该数组有指定的初始容量。
样例

import java.util.ArrayList;

public class ArrayListDemo {
    public static void main(String[] args) {
        ArrayList a1=new ArrayList();
        System.out.println("List的初始大小:"+a1.size());
        a1.add("A");
        a1.add("B");
        a1.add("C");
        a1.add("D");
        a1.add("E");
        a1.add("F");
        a1.add(1,"A2");
        System.out.println("增加元素的大小:"+a1.size());
        System.out.println("List中的内容:"+a1);
        a1.remove("D");
        a1.remove(2);
        System.out.println("删除元素后的大小:"+a1.size());
        System.out.println("内容:"+a1);
    }

}

结果
List的初始大小:0
增加元素的大小:7
List中的内容:[A, A2, B, C, D, E, F]
删除元素后的大小:6
内容:[A, A2, C, D, E, F]

!!!难点
从ArrayList获得数组
当使用ArrayList时,有时需要获得一个实际的数组,这个数组包含了列表的内容。可以通过调用方法toArray()来实现它。之所以要将集合类转换为数组,可能的原因如下。
(1)对于一些操作,可以获得更快的处理时间。
(2)为了给方法传递数组,而方法不必重载去接受集合。
(3)为了将新的基于集合的程序与不识别集合的老程序集成。

样例

import java.util.ArrayList;
import java.util.zip.Adler32;

public class ListToArray {
    public static void main(String[] args) {
        ArrayList a1=new ArrayList();
        a1.add(new Double(10.3));
        a1.add(new Double(20.4));
        a1.add(new Double(30.5));
        a1.add(new Double(40.6));
        a1.add(new Double(40.7));
        System.out.println("内容:"+a1);
        Object a[]=a1.toArray();
        double sum=0.0;
        for(int i=0;i<a.length;i++)
        {
            sum+=((Double)a[i]).doubleValue();
        }
        System.out.println("Sum :"+sum);
    }

}

结果
内容:[10.3, 20.4, 30.5, 40.6, 40.7]
Sum :142.5

Vector与Stack类
类Vector非常类似于ArrayList,但是Vector是同步的,在多个线程同时访问时,安全性能更好,但这也使得他的性能变差,类Stack继承自Vector,实现一个后进先出的栈。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值