美文网首页
java面试-集合相关

java面试-集合相关

作者: 沙夏cc | 来源:发表于2020-03-23 09:45 被阅读0次

最近整天面试厂商的人,我总在问一个很简单的问题,就是集合分为哪几种,都什么区别,怎么用。答的水平参差不齐。所以我想整体的写一写,系统的来学习一下常用的、集合相关的知识点。

java集合有哪些

首先需要明确的是:集合有3个接口

  • Iterator
  • Collection
  • Map

这是并列的概念。

可以看一下类图:
http://www.runoob.com/java/java-collections.html

image.png

要明确如下这些概念的层次关系

Collection

  • List
    • ArrayList
    • LinkedList
    • Vector
      • Stack
  • Set
    • HashSet
    • TreeSet
  • Queue

Map

  • HashMap
    • LinkedHashMap
  • TreeMap
  • WeakHashMap
  • IdentityHashMap
  • HashTable

前四个都是继承AbstractMap,实现了Map接口,代码里都是

xxx extends AbstractMap<K,V> implements Map<K,V>

但是HashTable继承Dictionary,实现了Map接口,所以这是一个很重要的区别。

List是一个接口

List.java

public interface List<E> extends Collection<E> {
    int size();
    boolean isEmpty();
    boolean contains(Object o);
    Iterator<E> iterator();
    ...
    ...
}

ArrayList是一个类

ArrayList.java

public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{
    
}

HashMap和HashTable的区别

HashTable为什么是线程安全的

public synchronized int size() {
        return count;
    }

Java中Collection和Collections的区别

  • java.util.Collection 是一个接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。
  • java.util.Collections 是一个类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。
public interface Collection<E> extends Iterable<E> {
    int size();
    boolean isEmpty();
    ...
    ...
}

public class Collections {
    // Suppresses default constructor, ensuring non-instantiability.
    private Collections() {
    }
    ...
    
    public static <T extends Comparable<? super T>> void sort(List<T> list) {
        list.sort(null);
    }
    ...
    ...
}

还有非常多内容,后续有时间继续整理...

参考资料

1.集合类--最详细的面试宝典--看这篇就够用了(java 1.8)

2.BAT面试必备——Java 集合类

相关文章

  • Nothing seek,Nothing find

    美图欣赏 Java、Android知识点汇集 Java集合类 ** Java集合相关的博客** java面试相关 ...

  • 【集合框架】

    集合框架(怎么实现、适用场景) hash相关 Java集合框架 Java集合框架综述Java集合框架面试问题集锦 ...

  • java面试集合相关

    准备知识点: java中涉及到集合的接口与实现类都位于java.util包下 集合中接口继承体系如下图所示:jav...

  • Java面试相关---集合

    Collection 集合和数组的区别 A:长度区别 数组的长度固定 集合长度可变 B:内容不同 数组存储的是同一...

  • java面试-集合相关

    最近整天面试厂商的人,我总在问一个很简单的问题,就是集合分为哪几种,都什么区别,怎么用。答的水平参差不齐。所以我想...

  • Java面试相关——集合

    Collection |--List |--ArrayList |--Vector |--LinkedList |...

  • Java面试题收集

    (长期更新)此贴用来收集Java相关的面试题集合 115个Java面试题和答案——终极列表(上) 115个Java...

  • 喜大普奔!70k Star 《Java核心知识面试手册》PDF版

    终于把PDF版本的《Java面试突击手册》搞定!废话不多说,直接上目录: 这份文档是Java 面试相关的文章的集合...

  • Java面试题目录

    垃圾回收 面试题-Java基础-垃圾回收 java垃圾回收 集合 40个Java集合面试问题和答案 Java集合框...

  • Java面试题目录

    垃圾回收 面试题-Java基础-垃圾回收 java垃圾回收 集合 40个Java集合面试问题和答案 Java集合框...

网友评论

      本文标题:java面试-集合相关

      本文链接:https://www.haomeiwen.com/subject/szyiyhtx.html