java的集合类是一个工具类,存放在java.util包中。它不仅可以存储对象,也可以实现常用数据结构,如栈、队列等。严格的说,集合类存放的是对象的引用,而不是对象本身。

java集合主要由这两个接口派生产生:Collection和Map。Collection体系中又包括Set,Queue,List。其中Collection和Map是java集合框架的根接口,他们又包括了一些子接口和实现类。

一、Collection集合体系

在Collection体系中,有三个子接口List、Set和Queue。每个子接口下列举了常用的实现类或接口。比如List下的ArrayList,Set下的HashSet等。

Collection中提供了集合的基本操作,其中方法的使用我们后面会涉及到。

public interface Collection<E> extends Iterable<E> {
// Query Operations
//查询操作 int size();
boolean isEmpty();
boolean contains(Object o);
Iterator<E> iterator();
Object[] toArray();
<T> T[] toArray(T[] a); // Modification Operations
//修改操作 boolean add(E e); boolean remove(Object o); // Bulk Operations
//批量操作
boolean containsAll(Collection<?> c); boolean addAll(Collection<? extends E> c); boolean removeAll(Collection<?> c); boolean retainAll(Collection<?> c); void clear(); // Comparison and hashing
//比较和哈希 boolean equals(Object o); int hashCode();
}

1)List

List集合是元素有序可重复的。

他和数组十分类似,List的长度可以改变。

Demo:

public static void main(String[] args){

		List list=new ArrayList();

		System.out.println("===开始放入===");
list.add("a");
System.out.println("list集合存入一个元素===");
list.add("b");
System.out.println("list集合存入一个元素===");
list.add("b");
System.out.println("list集合存入一个元素==="); System.out.println("===开始读取===");
for (int i = 0; i < list.size(); i++) {
System.out.println("读取list的第【"+i+"】个元素,元素是:"+list.get(i));
} }

输出:

2)Set

Set集合中的元素是无序的,可以重复的。就像一个盒子一样,他的个体都是去重的,不允许添加重复的元素。而正因为他只是个“盒子”或者“罐子”,无法维护元素的顺序。

3)Queue

Queue是模拟队列的,大家都知道,队列是FIFO先进先出的。与List、Set相比,除了Collection接口中定义的基本方法外,Queue就需要一些自己的方法了。

比如:

offer()        将元素加入队列尾部

poll()          获取队列头部元素,并删除。

element()  获取队列头部元素

peek()       获取队列头部元素,如果队列为空,返回null。

Demo:

public static void main(String[] args){

		PriorityQueue priorityQueue=new PriorityQueue();
//存入四个元素
priorityQueue.offer(2);
priorityQueue.offer(4);
priorityQueue.offer(6);
priorityQueue.offer(8);
//输出队列
System.out.println("队列元素:"+priorityQueue);
//获取队列的头部的元素
System.out.println("头部元素:"+priorityQueue.element()); }

输出:

二、Map集合体系

上图简单描述了map体系结构,map就有映射的意思,所有map的实现类都是用于保存具有映射关系的数据,即相关联的数组,key-value的键值对。

Map集合也像一个“罐子”、“盒子”,与Set盒子最大的不同是,他里面的每个数据都由每两个值组成。

Demo:

	public static void main(String[] args){
//定义map,放入元素
Map map=new HashMap();
map.put("name", "Sherry");
map.put("sex", 1);
map.put("score", 98);
//输出map
System.out.println(map);
System.out.println("是否包含“name”key:"+map.containsKey("name"));
System.out.println("========================");
//遍历map集合
for(Object key:map.keySet()){
System.out.println(key+"-->"+map.get(key));
} }

输出:

Java基础——集合的更多相关文章

  1. JAVA基础-集合(二)

    一.Map整体结构体系 Map是集合的另一大派系,与Collection派系不同的是Map集合是以键值对儿的形式存储在集合的.两个键为映射关系,其中第一个键为主键(主键是唯一的不可重复),第二个键为v ...

  2. Java基础-集合的嵌套

    Java基础-集合的嵌套 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.静态导入 静态导入是在JDK1.5后的新特性,可以减少开发的代码量,但是实际用处是很一般,静态导入的标准 ...

  3. Java基础——集合框架

    Java的集合框架是Java中很重要的一环,Java平台提供了一个全新的集合框架.“集合框架”主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型.Java平台的完整集合框架如下图所示: 上 ...

  4. java基础---集合(1)

    一. 基本概念 集合.数组都是对多个数据进行存储操作的结构,简称Java容器 数组:长度确定,类型确定,对于添加.删除.插入等操作效率不高,元素有序可重复 Java中集合框架顶层框架是:java.ut ...

  5. Java基础——集合源码解析 List List 接口

    今天我们来学习集合的第一大体系 List. List 是一个接口,定义了一组元素是有序的.可重复的集合. List 继承自 Collection,较之 Collection,List 还添加了以下操作 ...

  6. Java基础—集合

    一.概述 Java中的集合框架主要分为两大派别:Collection 和 Map —— 位于util包下 类的基础关系图如下(图片来自百度) 常用: List——有序可重复 Set——无序不可重复 M ...

  7. java基础集合简介Set(三)中

    今天主要说夏set集合,每天抽出一个小时总结下,生活会更加美好! --< java.util >-- Set接口: 数据结构:数据的存储方式: Set接口中的方法和Collection中方 ...

  8. java基础集合经典训练题

    第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...

  9. 十七、Java基础---------集合框架之Map

    前两篇文章中介绍了Collection框架,今天来介绍一下Map集合,并用综合事例来演示. Map<K,V> Map<K,V>:Map存储的是键值对形式的元素,它的每一个元素, ...

  10. 十六、Java基础---------集合框架之Set

    写在前面的话,这篇文章在昨天就写好了,今天打开的时候一不小心将第二天的文章粘贴到了这篇文章,很不幸的是除了标题之外依然面目全非,今天带着沉痛的心情再来写这篇文章! 上篇文章介绍了Collection体 ...

随机推荐

  1. flask中的response

    1.Response 在flask中你想向前端返回数据,必须是Response的对象,这里和django必须是HttpResponse 对象一样, 主要将返回数据的几种方式 视图函数中return 字 ...

  2. ABAP术语-Business Process

    Business Process 原文:http://www.cnblogs.com/qiangsheng/archive/2008/01/11/1035316.html A prepared sce ...

  3. ABAP术语-ABAP Workbench

    ABAP Workbench 原文:http://www.cnblogs.com/qiangsheng/archive/2007/12/10/989037.html Integrated graphi ...

  4. iframe中的页面在IE全屏模式下没有滚动条,正常模式有滚动条

    这个问题在其他浏览器都不会出现,唯独IE不行,搜遍了百度以及各大论坛网站,都找不到这个问题的解决方案,只好自己整了. 造成这个问题的原因很简单,就是刚开始的滚动条我用的是iframe的滚动条,ifra ...

  5. Linux中程序的编译和链接过程

    1.从源码到可执行程序的步骤:预编译.编译.链接.strip 预编译:预编译器执行.譬如C中的宏定义就是由预编译器处理,注释等也是由预编译器处理的. 编译: 编译器来执行.把源码.c .S编程机器码. ...

  6. C++拷贝构造函数 的理解

    #include <iostream> using namespace std; //拷贝构造函数的理解 class Point { public: Point(); Point(int ...

  7. FPGA算法学习(1) -- Cordic(圆周系统之向量模式)

    旋转模式用来解决三角函数,实现极坐标到直角坐标的转换,基础理论请参考Cordic算法--圆周系统之旋转模式.那么,向量模式则用来解决反三角函数的问题,体现的应用主要是直角坐标向极坐标转换,即已知一点的 ...

  8. shell重温---基础篇(参数传递&echo命令)

    经过前两天的学习,关于shell的基础算是知道的一般般啦,最起码不算是小白了(纯属意淫).今天就来点干货哈.   首先是运行shell脚本时的参数传递.脚本内获取参数的格式为$n.n代表了一个数字,例 ...

  9. 20145202马超《网络对抗》Exp3免杀 进阶

    木马化正常软件,如通过改变机器指令.实现可免杀免防火墙提示的后门. 继上次实验3所做的代码在主函数里面加上一行调用就可以 改各种属性,这里我参考了郝浩同学的博客 最后我还是遇到了问题 后来发现虽然有那 ...

  10. P1095 守望者的逃离

    P1095 守望者的逃离 题目描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上.为了杀死守望者,尤迪安开始对这 ...