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

原创 2016年08月30日 20:02:02

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

你所不知道的五件事情--Java集合框架API(第一部分)

你所不知道的五件事情--Java集合框架API(第一部分)                                                   --定制与扩展Java集合框架 概...

java笔记 第四章 Java面向对象编程基础第一部分(类和main方法)

第四章 Java面向对象编程基础 第一部分(类和main方法) Java语言是由类和对象组成的,对象和类又是由变量和方法组成的,方法中包含了语句和表达式。本章所要介绍的内容都是Java中最基本的单元...

java基础编程,用户自定义替换list列表部分位置元素(基于collections工具类扩展)

collections工具类定义了一个方法fill(List

JDK源码-java.lang.management-第一部分-源码学习

java.lang.management
  • QXC1281
  • QXC1281
  • 2016年12月24日 11:11
  • 497

Java Serializable(序列化) 第一部分

java 序列化 转自我的博客园博客:http://www.cnblogs.com/gushuloong/p/3682184.html     Java Serializable(序列化)  ...

Java IO体系 - 第一部分

一.  IO体系 字节流(只列出常用): InputStream顶层抽象类 |----FileInputStream字节文件读取流 |----ObjectInputStream反序列化读取流 |---...

Objective-c for Java程序员 第一部分1

Objective-c for Java 程序员 第一部分 Java的设计灵感大都来自Objective-C,但许多人发现学习过Java后再学习Objective-C是困难。在第一个由两部分...

--面向对象第一部分--java学习日记4(基础知识)

面向对象的三大特性:继承、封装和多态
  • qq_1991
  • qq_1991
  • 2014年07月15日 14:42
  • 664

Java多线程复习与巩固(五)-生产者消费者问题(第一部分)

生产者消费者问题(第一部分)生产者消费者问题也称为有限缓冲问题,是线程同步的一个经典问题:生产者线程和消费者线程共享一块固定大小的缓存,生产者负责生成产品然后存入共享缓冲区中,消费者负责从共享缓冲区中...
  • Holmofy
  • Holmofy
  • 2017年08月01日 19:56
  • 157
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java(集合类)第一部分(List)
举报原因:
原因补充:

(最多只允许输入30个字)