深入理解java合集之框架总览

综述

Java集合就是一个容器。面向对象语言对事物的体现都是以对象的形式存在,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。如果往集合里存放基本数据类型,在存取过程中会有个自动装箱和拆箱。

因为容器中数据结构不同,容器有很多种。不断地将共性功能向上抽取,形成了集合体系,称之为集合框架。

集合框架的顶层就称之为Collection接口。所有的集合类都位于java.util包下,查阅API可以得到如下体系结构。在使用一个体系时,原则:参阅顶层内容。建立底层对象。


     集合和数组的区别:

1:数组是固定长度的;集合可变长度的。

2:数组可以存储基本数据类型,也可以存储引用数据类型;集合只能存储引用数据类型。

3:数组存储的元素必须是同一个数据类型;集合存储的对象可以是不同数据类型。

------------------------------------------------------------------------------------------------------------------------------------

Collection<E>接口

    Collection:单列集合

|--List:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引,允许重复元素。

|--Set:无序(存入和取出顺序有可能不一致),不允许重复元素,必须保证元素的唯一性。

java.util.Collection接口中的共性方法有(抽象方法):

1.添加:
        boolean add(Object obj):一次添加一个。
        boolean addAll(Collection c):将指定容器中的所有元素添加。

2.删除:
        void clear():将集合中的元素全删除,清空集合。
        boolean remove(Object o):删除集合中指定的对象。注意:删除成功,集合的长度会改变。
        boolean removeAll(Collection c):删除部分元素。部分元素和传入Collection一致.

boolean removeIf(Predicate<? super E> filter)  删除删除满足给定谓词的这个集合的所有元素。

3.取交集:
        boolean retainAll(Collection c):对当前集合中保留和指定集合中的相同的元素。
        如果两个集合元素相同,返回false;如果retainAll修改了当前集合,返回true。

4.获取长度:
        int size():集合中有几个元素。

5.判断:
        boolean isEmpty():集合中是否有元素。
        boolean contains(Object o):集合中是否包含指定元素。
        boolean containsAll(Collection c)集合中是否包含指定的多个元素。

6.将集合转成数组。
        Object[] toArray()
        <T> T[] toArray(T[] t)

7.取出集合元素。
        Iterator iterator():获取集合中元素上迭代功能的迭代器对象。

=========================================================================

Iterator<E>接口

java.util.Iterator接口是一个对 collection 进行迭代的迭代器,作用是取出集合中的元素。

Iterator iterator():获取集合中元素上迭代功能的迭代器对象。

迭代:取出元素的一种方式。有没有啊?有!取一个。还有没有啊?有!取一个。还有没有啊?没有。算了。

迭代器:具备着迭代功能的对象。迭代器对象不需要new。直接通过 iterator()方法获取即可。

迭代器是取出Collection集合中元素的公共方法。

每一个集合都有自己的数据结构,都有特定的取出自己内部元素的方式。为了便于操作所有的容器,取出元素,将容器内部的取出方式按照一个统一的规则向外提供,这个规则就是Iterator接口。

也就说,只要通过该接口就可以取出Collection集合中的元素,至于每一个具体的容器依据自己的数据结构,如何实现的具体取出细节,这个不用关心,这样就降低了取出元素和具体集合的耦合性。

Iterator it = coll.iterator();//获取容器中的迭代器对象,至于这个对象是是什么不重要。这对象肯定符合一个规则Iterator接口。

---------------------

作者:李春春_

来源:CSDN

原文:https://blog.csdn.net/zhongkelee/article/details/46801449

版权声明:本文为博主原创文章,转载请附上博文链接!

原文:https://blog.csdn.net/zhongkelee/article/details/46801449

原文地址:https://www.cnblogs.com/which24/p/10387232.html

时间: 2024-10-14 05:09:02

深入理解java合集之框架总览的相关文章

java合集框架第一天

文章目录 1 collection接口 2  list接口 3 Iterator 4 Vertor 5  ArrayList 6 LinkedList 主体部分: (1)collection Java中有数字包装类(Inteager),字符包装类(String) . 其实也有对象的包装类----用来装对象的(通常是一类对象).这样做的好处是:使用方法和属性便于管理对象. 这种包装类叫做容器. 就想我们的水杯一样,结果都有一定的差异.同样容器由于数据结构的不同,也有很多类型.他们的父类是colle

深入理解java:4.2. 框架编程之Spring框架的设计理念

什么是Spring呢? Spring是为了解决企业应用开发的复杂性而创建的一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架. Spring优点 简单了解Spring之后,我们看一下Spring的优点. 1.方便解耦,简化开发. 2.AOP编程的支持. 3.声明式事务的支持. 4.方便程序的测试.. 5.方便集成各种优秀框架. 6.降低Java EE API的使用难度. Spring的骨骼架构 Spring总共有十几个组件,但是真正核心组件只有三个:Core.Context和Beans

深入理解java:4.1. 框架编程之Spring MVC

Spring MVC是当前最优秀的MVC框架,自从Spring 2.5版本发布后,由于支持注解配置,易用性有了大幅度的提高. Spring 3.0更加完善,实现了对Struts 2的超越.现在越来越多的开发团队选择了Spring MVC. Struts2也是非常优秀的MVC构架,优点非常多比如良好的结构,拦截器的思想,丰富的功能. 但这里想说的是缺点,Struts2由于采用了值栈.OGNL表达式.struts2标签库等,会导致应用的性能下降,应避免使用这些功能. Spring3 MVC的优点:

20.2合集

要点提示:Collection接口为线性表.向量.栈.队列,优先队列以及集合定义了共同的操作. java合集框架支持以下两种类型的容器: 一种是为了存储一个元素 合集,简称为合集(collection): 另一种是为了存储键值对,称为映射表(map) 映射表是一个用于使用一个键(key)快速搜索一个元素的高效数据结构. Set用于存储一组不重复的元素 List用于存储一个有序元素合集 Stack用于存储采用后进先出方式处理的对象 Queue用于存储采用先进先出方式处理的对象 Priority Q

【由浅入深理解java集合】(五)——集合 Map

前面已经介绍完了Collection接口下的集合实现类,今天我们来介绍Map接口下的两个重要的集合实现类HashMap,TreeMap.关于Map的一些通用介绍,可以参考第一篇文章.由于Map与List.Set集合的某些特性有重合,因此观看本篇文章的会参考到之前的一些内容,最下方有链接.如果已经有这方面的基础,那么对Map的学习将会事半功倍. HashMap HashMap 是一个散列表,它存储的内容是键值对(key-value)映射. 既然要介绍HashMap,那么就顺带介绍HashTable

浅谈java类集框架和数据结构(2)

继续上一篇浅谈java类集框架和数据结构(1)的内容 上一篇博文简介了java类集框架几大常见集合框架,这一篇博文主要分析一些接口特性以及性能优化. 一:List接口 List是最常见的数据结构了,主要有最重要的三种实现:ArrayList,Vector,LinkedList,三种List均来自AbstracList的实现,而AbstracList直接实现了List接口,并拓展自AbstractCollection. 在三种实现中,ArrayList和Vector使用了数组实现,可以认为这两个是

【Java并发编程】并发编程大合集

转载自:http://blog.csdn.net/ns_code/article/details/17539599 为了方便各位网友学习以及方便自己复习之用,将Java并发编程系列内容系列内容按照由浅入深的学习顺序总结如下,点击相应的标题即可跳转到对应的文章    [Java并发编程]实现多线程的两种方法    [Java并发编程]线程的中断    [Java并发编程]正确挂起.恢复.终止线程    [Java并发编程]守护线程和线程阻塞    [Java并发编程]Volatile关键字(上)

2019 java面试题合集

得不到的始终在骚动 金三银四的季节大家有点躁动了  总结一下面试题 其中有很多其他博客或者论坛摘抄的内容  一. 基础 1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?答:Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件. 2.面向对象的三大特性答:面向对象的特征主要有以下几个方面:- 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注

《深入理解Java集合框架》系列文章

Introduction 关于C++标准模板库(Standard Template Library, STL)的书籍和资料有很多,关于Java集合框架(Java Collections Framework, JCF)的资料却很少,甚至很难找到一本专门介绍它的书籍,这给Java学习者们带来不小的麻烦.我深深的不解其中的原因.虽然JCF设计参考了STL,但其定位不是Java版的STL,而是要实现一个精简紧凑的容器框架,对STL的介绍自然不能替代对JCF的介绍. 本系列文章主要从数据结构和算法层面分析