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:常用集合类(List、Map、Set、Queue、Stack)

迭代器基本概念Iterator接口包含3个方法:public interface Iterator { E next(); boolean hasNext(); void re...
  • jinzhao1993
  • jinzhao1993
  • 2016年10月07日 07:54
  • 666

java基础—常用的集合类有哪些?比如List如何排序?

常用的集合类有哪些?比如List如何排序? Set、List、Map.png Java中常用的集合类 对于集合,大家都不陌生了,常见的集合接口Set、List、Map等,其中Set和List...
  • ITzhangdaopin
  • ITzhangdaopin
  • 2017年12月04日 16:41
  • 405

java基础提高篇--集合源码分析--jdk1.8 ArrayList源码

package java.util; import java.util.function.Consumer; import java.util.function.Predicate; import...
  • dlxxn0518
  • dlxxn0518
  • 2017年07月10日 10:02
  • 388

Java 7之集合类型 - ArrayList

转载请注明出处: 先来看ArrayList写法如下: public class ArrayList extends AbstractList implements List, RandomAcc...
  • mazhimazh
  • mazhimazh
  • 2014年02月20日 10:47
  • 3304

java集合系列——List集合之ArrayList介绍(二)

List是 java.util包下面的类,从 java集合系列——java集合概述(一) 中可以知道,List继承了Collection 接口! List本身也是一个接口,它的实现有ArrayLis...
  • u010648555
  • u010648555
  • 2017年02月26日 16:06
  • 1673

为什么集合类没有实现Cloneable和Serializable接口

转自:牛客网 为什么集合类没有实现Cloneable和Serializable接口? 答:克隆(cloning)或者序列化(serialization)的语义和含义是跟具体的实现相关的。因此应...
  • qq_18433441
  • qq_18433441
  • 2017年10月13日 09:44
  • 1039

Java集合详细介绍及原理

Java集合详细介绍及原理 Collection(单列集合) List(有序,可重复) ArrayList 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector 底层数据...
  • u010788587
  • u010788587
  • 2015年01月25日 21:06
  • 1753

Java 集合类详解(含类图)

0.参考文献 http://blog.csdn.net/liulin_good/article/details/6213815 1.java集合类图 1.1 1.2 ...
  • xyw591238
  • xyw591238
  • 2016年06月28日 16:26
  • 9301

集合类 Java中的集合类解析和一些有深入的面试题

Java集合类解析 List、Map、Set三个接口,存取元素时,各有什么特点? List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存...
  • qq_33326449
  • qq_33326449
  • 2016年10月05日 23:39
  • 3138

c#集合类的线程安全(整理)

QueueT> 类 MSDN的说法 线程安全 此类型的公共静态(在 Visual Basic 中为 Shared)成员是线程安全的。但不能保证任何实例成员是线...
  • wlanye
  • wlanye
  • 2013年03月13日 13:52
  • 14129
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java(集合类)第一部分(List)
举报原因:
原因补充:

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