刚申请了一个博客,怀着一颗激动的心情我竟不知道写点啥,嗯~来点基础的吧!面试的时候一直被问到的集合框架。
       集合,也称为容器,可以将一系列元素组合成一个单元,用于存储、提取、管理数据。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. 3-2 LInux文件管理

    LInux文件管理 文件系统目录结构 Linux中目录结构是有一定的约定的FHS /bin:存放二进制程序 /boot:启动相关 /dev:设备文件 /etc:配置文件 /home:用户家目录 /li ...

  2. jmeter设置中文语言

    1.在jmeter的bin目录下找到  jmeter.properties  文件并打开 2.搜索关键字 “language”,将37行(以搜索到的位置为准)改成下图所示:language=zh_CN ...

  3. linux系统查看当前正在运行的服务

    --查看当前服务器所有服务 service --status-all -- 查看当前所有正在运行的服务 service --status-all | grep running --查看指定服务运行状态 ...

  4. 【AMAD】stackprint -- 为Python加入利于调试的traceback信息

    简介 动机 作用 用法 热度分析 源码分析 个人评分 简介 为Python加入利于调试的traceback信息.  动机 Python抛出异常时,会显示一些traceback信息.但是,一些时候这些 ...

  5. 安卓的一些UI美化框架的使用

    目录 一.前言 二.Android-Bootstrap 三.Sweet Alert Dialog 四.ExplosionField 一.前言 在这里记录一些用到过的觉得还算不错的UI第三方开源美化框架 ...

  6. 【Python开发】使用pyplot模块绘图

    快速绘图 使用pyplot模块绘图¶ matplotlib的pyplot模块提供了和MATLAB类似的绘图API,方便用户快速绘制二维图表.我们先看一个简单的例子: 05-matplotlib/mat ...

  7. 【DSP开发】【计算机视觉】EMCV:可在DSP上运行的OpenCV

    EMCV:可在DSP上运行的OpenCV EMCV项目主页: http://sf.net/projects/emcv EMCV全称为Embedded Computer Vision Library,是 ...

  8. PostgreSQL编码格式:客户端服务器、客户端、服务器端相关影响

    关于字符编码这块,官网链接: https://www.postgresql.org/docs/current/charset.html 刚刚写了几百字的东西因为断网,导致全没有了,重头再写,我就只想记 ...

  9. java-selenium浏览器常用操作命令

    一.浏览器操作命令 启动火狐浏览器(49版本以下) System.setProperty("webdriver.firefox.bin","D:\\Firefox\\fi ...

  10. C++练习 | 文件流应用(1)

    #include <iostream> #include <cmath> #include <cstring> #include <string> #i ...