关闭

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

标签: java
80人阅读 评论(0) 收藏 举报
分类:

三种
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,实现一个后进先出的栈。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:66907次
    • 积分:3076
    • 等级:
    • 排名:第11323名
    • 原创:248篇
    • 转载:0篇
    • 译文:0篇
    • 评论:14条
    最新评论