刚申请了一个博客,怀着一颗激动的心情我竟不知道写点啥,嗯~来点基础的吧!面试的时候一直被问到的集合框架。
       集合,也称为容器,可以将一系列元素组合成一个单元,用于存储、提取、管理数据。JDK提供的集合API都包含在java.util包内
       JAVA集合框架主要分为两部分,
       一部分实现了Collection接口,该接口定义了存取一组对象的方法,其子接口Set和List分别定义了存取方式;
 
    
                                 
                                                                                                 Collection接口框架
 
     Collection是最基本的集合接口,一个Collection代表一组Object,每个Object即Collection中的元素。JDK不提供Collection接口的任何直接实现类,而是提供了更具体的子接口实现(如set、list)。
     如上图所示,Collection接口主要有三个子接口,分别是List接口、Set接口和Queue接口:
  •  List接口

    有序,可重复

    List接口继承自Collection接口的主要方法:

      void  add(int  index,Object O)     向指定位置插入元素

      Object  get(int  index)     返回集合中指定位置的元素

      int  indexOf(Object  O)          返回集合中第一处出现的指定元素的索引,若不包含,返回-1

      int  lastIndexOf(Object  o)  返回集合中最后一次出现的指定元素的索引,若不包含返回-1

      Object   remove(int  index)     移除指定位置的元素

      Object  set(int  index,Object  o)    用指定的数据元素替换集合中指定位置的数据元素

      ArrayList实现了List接口,在存储方式上采用数组进行顺序存储,与List不同的是,ArrayList对数组进行了封装,实现了可变长度的数组。

      LinkedList在存储方式上采用链表进行链式存储

      总结:

      

  • Set接口

    无序,不可重复

      Set接口继承自Collection接口的主要方法:

        boolean  add(Object  obj)  向集合中添加元素,该元素不能和集合中现有元素重复,若重复添加无效,并返回false

        void  clear()    集合清空

        boolean  contains(Object  obj)     判断集合中是否包含该元素,若包含返回true

        boolean  isEmpty()       判断集合是否为空,若为空返回true

        Iterator   iterator()      返回一个iterator对象,用它来遍历集合中的数据元素

        boolean  remove()     若集合中包含此元素,则将其删除,并返回true

         int   size()      返回集合中数据元素的个数

        Object[ ]   toArray( )       返回一个数组,该数组包含集合中的所有数据元素

        总结:

        

Queue接口(可以说我平时都没用过,此处也不做详细解释)

    Queue接口用于在处理元素前保存元素的Collection序列。除了具有Collection接口基本的操作外,Queue接口还提供了其它的插入、提取和检查等操作。

另一部分是Map接口,该接口定义了存储一组“键(key)值(value)”映射对的方法。Map接口里存放的是一系列键值对,key不要求有序,但不可重复,每一个key只能映射一个value值。

Map接口框架

      总结:

      

    TreeSet、LinkedHashSet和HashSet的区别?

        1.TreeSet的主要功能用于排序

        2.LinkedHashSet的主要功能用于保证FTFO即有序的集合(先进先出)

        3.HashSet只是通用的存储数据的集合

 

有关List、Set、Map的基础了解的更多相关文章

  1. java--List、Set、Map的基础

    好像面试很多面试官都喜欢问这它们的一些问题,所以在这里我稍微总结一下,并把大佬们的文章链接贴在后面. 首先我们借鉴了https://www.cnblogs.com/SnowingYXY/p/67273 ...

  2. (Map)利用Map,完成下面的功能:  从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如果该 年没有举办世界杯,则输出:没有举办世界杯。  附:世界杯冠军以及对应的夺冠年份,请参考本章附录。 附录 (Map)在原有世界杯Map 的基础上,增加如下功能: 读入一支球队的名字,输出该球队夺冠的年份列表。 例如,读入“巴西”,应当输出 1958 1962 1970 1

    package homework001; import java.util.HashMap; import java.util.Scanner; public class Map { public s ...

  3. STL——map/unordered_map基础用法

    map /multimap map是STL里重要容器之一. 它的特性总结来讲就是:所有元素都会根据元素的键值key自动排序(也可根据自定义的仿函数进行自定义排序),其中的每个元素都是<key,  ...

  4. Kotlin——高级篇(四):集合(Array、List、Set、Map)基础

    在实际的项目开发中,集合的运用可以说是多不胜数.不过Kotlin中的集合运用和Java中还是有很大的差别,他们两者之间,除了集合的类型相同以外,还包含集合的初始化的不同,以及Kotlin对于集合封装特 ...

  5. C++ - STL - map的基础操作

    STL - map常用方法 map简述 map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,其作用类似于 ...

  6. 【C++】【STL】【map】基础知识干货

    1.map简介 map是一种关联式容器,主要用于对数据一对一的映射. 2.map的构造 (1)头文件:#include<map> (2)定义:map<第一关键字,第二关键字> ...

  7. Java 基础 Map 练习题

    第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队.如果该 年没有举办世界杯,则输出:没有举办世界杯. 附:世界杯冠军以及对应的夺冠年 ...

  8. Java-map-第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如果该 年没有举办世界杯,则输出:没有举办世界杯。 附:世界杯冠军以及对应的夺冠年份,请参考本章附录。 附录

    第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队.如果该 年没有举办世界杯,则输出:没有举办世界杯. 附:世界杯冠军以及对应的夺冠年 ...

  9. Java Map 集合类简介

      作者:Jack Shirazi 了解最常用的集合类型之一 Map 的基础知识以及如何针对您应用程序特有的数据优化 Map. 本文相关下载: · Jack 的 HashMap 测试 · Oracle ...

随机推荐

  1. Python Deque 模块使用详解,python中yield的用法详解

    Deque模块是Python标准库collections中的一项. 它提供了两端都可以操作的序列, 这意味着, 你可以在序列前后都执行添加或删除. https://blog.csdn.net/qq_3 ...

  2. 【Linux】【四】linux 删除文件

      1.rm -f *     删除当前目录下的文件  application/file/test/tools/logs/   #最经典的方法,删除当前目录下的所有类型的文件 2.rm -rf /ro ...

  3. django基础窗口类的使用

    django基础窗口form表单的运用 具体效果图如下: 首先确定表单中的数据集,先自己创建一个forms.py或者在原来的models.py中添加: 1代码如下 class ContactForm( ...

  4. 关于js中断ajax请求

    停止javascript的ajax请求,一种是设置超时时间让ajax自动断开,另一种为手动去停止ajax请求,其核心是调用XMLHttpRequest对象上的abort方法,这里,我们以jquery举 ...

  5. Windows-T

    查看Windows系统版本号 同时按下Windows键和字母R键,然后输入winver就可以了 命令行运行计算器cmd-calc win10卸载XShell6报错1603 在运行里输入regedit打 ...

  6. caoz的梦呓:信息安全,别为了芝麻丢了西瓜

    猫宁!!! 参考链接:https://mp.weixin.qq.com/s/z6UI-tdhN1CGdqQQuglLVQ 对方公众号:caoz的梦呓 我之前写微博的时候,经常就有读者反馈说,你怎么用3 ...

  7. linux环境jdk+tomcat搭建

    一.什么是Linux? 和Windows操作系统软件一样,Linux也是一个操作系统软件.但是和Windows不同的是,Linux是一套开放源代码程序的.并可以自由传播的类Unix操作系统软件(Uni ...

  8. C++学习笔记-运算符重载

    运算符重载使得用户自定义的数据以一种更简洁的方式工作 运算符重载规则 重载运算符的限制 可以重载的运算符 + - * / % ^ & | ~ ! = < > += -= *= /= ...

  9. 菜鸟系列Fabric——Fabric 1.2 单机部署(2)

    Fabric 1.2单机部署 https://hyperledger-fabric.readthedocs.io/en/release-1.2/whatis.html 创建目录 sudo mkdir ...

  10. C++学习 之 指针及动态内存分配(笔记)

    1. 指针 1.1 指针的含义: 简单来说,指针是存储内存地址的变量.当我们声明了一个指针变量后,使用该指针时系统会根据指针内的地址索引内存块,读取内存内的值.指针因为是用来存地址的,所以一般固定长度 ...