不多说,直接上干货!

  1. https://www.nowcoder.com/ta/review-java/review?tpId=31&tqId=21086&query=&asc=true&order=&page=18

  总共有两大接口:Collection 和Map ,一个元素集合,一个是键值对集合;

   其中List和Set接口继承了Collection接口,一个是有序元素集合,一个是无序元素集合;

  而ArrayList和
LinkedList 实现了List接口,HashSet实现了Set接口。

  这几个都比较常用; HashMap
和HashTable实现了Map接口,并且HashTable是线程安全的,但是HashMap性能更好。

 java.util.Collection 

  1. java.util.List
  2. java.util.ArrayList
  3. java.util.LinkedList
  4. java.util.Vector
  5. java.util.Stack
  6.  
  7. java.util.Set
      java.util.HashSet
        java.util.LinkedHashset
      java.util.SortedSet
        java.util.TreeSet

  TreeSet是SortedSet接口的实现类。

 java.util.Map

  1. java.util.SortedMap
      java.util.TreeMap
    java.util.Hashtable
    java.util.HashMap
      java.util.LinkedHashMap
    java.util.WeakHashMap

  TreeMap是SortedMap接口的实现类。

  集合类接口指定了一组叫做元素的对象。集合类接口的每一种具体的实现类都可以选择以它自己的方式对元素进行保存和排序。有的集合类允许重复的键,有些不允许。
Java集合类提供了一套设计良好的支持对一组对象进行操作的接口和类。Java集合类里面最基本的接口有:
  Collection:代表一组对象,每一个对象都是它的子元素。
  Set:不包含重复元素的Collection。
  List:有顺序的collection,并且可以包含重复元素。
  Map:可以把键(key)映射到值(value)的对象,键不能重复。

  List,Set继承自Collection接口,而Map没有继承自Collection接口。

  List:有序可重复。 Set:无序不可重复。

  (1)、collection和map集合位于java.util包内,是一个接口,set,list接口都继承于collection接口。
    collection接口定义了存取一组对象的方法,其子接口set,list分别定义了存取方式:
    set中无顺序且不可重复,
    list中有顺序,可重复,是线程不同步的,即线程不安全。
    hashset类继承于set接口,linkedlist和arraylist类继承于list接口
    linkedlist类中元素组织方式是链表形式,便于插入删除,不便于查找
    arraylist类中元素组织方式是以数组形式,便于查找,不便于插入删除
    需要注意的是:collection,set,list都是接口,linkedlist,arraylist,hashset都是类。
  (2)、Map:可以把键(key)映射到值(value)的对象,键不能重复。hashmap和treemap类都是继承于map接口,hashmap是线程不安全的。

  collection:一组对象的集合,每一个对象都是collection的子元素。

  set:不允许出现重复元素且无序排列的collection。

  list:排列有序且可以出现重复元素的collection。

  map:允许将key映射到val的collection。其中key不能重复。

Java集合类里最基本的接口有:
  Collection:单列集合的根接口
  List:元素有序  可重复 
    ArrayList:类似一个长度可变的数组 。适合查询,不适合增删
    LinkedList:底层是双向循环链表。适合增删,不适合查询。
  Set:元素无序,不可重复
    HashSet:根据对象的哈希值确定元素在集合中的位置
    TreeSet: 以二叉树的方式存储元素,实现了对集合中的元素排序
  Map:双列集合的根接口,用于存储具有键(key)、值(value)映射关系的元素。
    HashMap:用于存储键值映射关系,不能出现重复的键key
    TreeMap:用来存储键值映射关系,不能出现重复的键key,所有的键按照二叉树的方式排列
 
 

  Set:表示数学意义上的集合概念,无序,其最主要特点就是集合中的元素不能重复,因此存入Set的每个元素都必须定义equals()方法来确保对象的唯一性。

  List:有序,可以保存重复的对象。它按对象进入的顺序保存对象,所以它能对列表中的每个元素的插入和删除位置进行精确的控制。

  Map:值可以重复,但键是唯一的。

    注意: Map是接口,不能实例化。

  1. Map m = new Map();//错误
  2. Map m = new Map(init capacity,increment capacity)//错误
  3. Map m = new Map(new Collection())//错误
  4. Map m = new HashMap()//正确

牛客网Java刷题知识点之Java集合类里面最基本的接口有哪些的更多相关文章

  1. 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合

    不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...

  2. 牛客网Java刷题知识点之Java为什么不能支持多继承,但可以用接口来间接实现多继承

    不多说,直接上干货! java只支持单继承,这是由于安全性的考虑,如果子类继承的多个父类里面有相同的方法或者属性,子类将不知道具体要继承哪个,而接口可以多实现,是因为接口只定义方法,而没有具体的逻辑实 ...

  3. 牛客网sql刷题解析-完结

    查找最晚入职员工的所有信息 解题步骤: 题目:查询最晚入职员工的所有信息        目标:查询员工的所有信息 筛选条件:最晚入职           答案: SELECT *--查询所有信息就用* ...

  4. 牛客网Java刷题知识点之为什么HashMap和HashSet区别

    不多说,直接上干货! HashMap  和  HashSet的区别是Java面试中最常被问到的问题.如果没有涉及到Collection框架以及多线程的面试,可以说是不完整.而Collection框架的 ...

  5. 牛客网Java刷题知识点之为什么HashMap不支持线程的同步,不是线程安全的?如何实现HashMap的同步?

    不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...

  6. 牛客网Java刷题知识点之Map的两种取值方式keySet和entrySet、HashMap 、Hashtable、TreeMap、LinkedHashMap、ConcurrentHashMap 、WeakHashMap

    不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...

  7. 牛客网Java刷题知识点之ArrayList 、LinkedList 、Vector 的底层实现和区别

    不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...

  8. 牛客网Java刷题知识点之HashMap的实现原理、HashMap的存储结构、HashMap在JDK1.6、JDK1.7、JDK1.8之间的差异以及带来的性能影响

    不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑          ...

  9. 牛客网Java刷题知识点之泛型概念的提出、什么是泛型、泛型在集合中的应用、泛型类、泛型方法、泛型接口、泛型限定上限、泛型限定下限、 什么时候使用上限?泛型限定通配符的体现

    不多说,直接上干货! 先来看个泛型概念提出的背景的例子. GenericDemo.java package zhouls.bigdata.DataFeatureSelection; import ja ...

随机推荐

  1. Python作业之用户管理

    作业 流程图没有画,懒,不想画 readme没有写,懒,不想写.看注释吧233333 #! /usr/bin/env python # -*- coding: utf-8 -*- # __author ...

  2. !function(){}()和function(){}()区别

    控制台打印结果如下所示,接下来看一下具体运行,参考https://swordair.com/function-and-exclamation-mark/: 让一个函数声明语句变成了一个表达式

  3. js some和filter用法和区别

    some方法 array1.some(callbackfn[, thisArg]) 对数组array1中的每个元素调用回调函数callbackfn,当回调函数返回true或者遍历完所有数组后,some ...

  4. AQS共享锁应用之Semaphore原理

    我们调用Semaphore方法时,其实是在间接调用其内部类或AQS方法执行的.Semaphore类结构与ReetrantLock类相似,内部类Sync继承自AQS,然后其子类FairSync和NoFa ...

  5. Spring3.3 整合 Hibernate3、MyBatis3.2 配置多数据源/动态切换数据源方法

    一.开篇 这里整合分别采用了Hibernate和MyBatis两大持久层框架,Hibernate主要完成增删改功能和一些单一的对象查询功能,MyBatis主要负责查询功能.所以在出来数据库方言的时候基 ...

  6. saltstack api安装使用

    Salt自然也是提供api的,使用api对自动化有极大的帮助,我们使用rest风格的api,当然大家都知道salt是python写的,那么自然也就提供了对应的api,但是并不建议使用,因为调用pyth ...

  7. .net使用DotNetCharting控件生成报表统计图总结

    最近在做项目时要对数据进行统计分析,所以必须生成一些报表统计图(如柱形图.饼图.曲线图等),网上强烈推荐了使用DotNetCharting控件来实现,于是自己对DotNetCharting控件进行了简 ...

  8. 使用escape、encodeURI 和 encodeURIComponent 解决url中文乱码问题

    escape(), encodeURI()和encodeURIComponent()是在Javascript中用于编码字符串的三个常用的方法,而他们之间的异同却困扰了很多的Javascript初学者, ...

  9. virtualBox中的centOS虚拟机硬盘扩容

    1. 在virtualBox中给虚拟机添加虚拟硬盘 此时. 已经将yanwu_disk1.vdi 虚拟硬盘添加到了虚拟机中, 接下来就是进行硬盘的挂载 https://www.cnblogs.com/ ...

  10. Ubuntu18.04安装和配置Java JDK11并卸载自带OpenJDK

    卸载自带的OpenJDK方法: 在终端执行命令:sudo apt-get remove openjdk* Ubuntu18.04安装JDK11.0.2 前面步骤一样,可参考:https://www.c ...