集合类
一、什么是集合以及使用的好处?Java有哪些常见的集合类?
集合概念
-
集合就是一个放数据的容器,准确的说是放数据对象引用的容器
-
集合类存放的都是对象的引用,而不是对象的本身
-
集合类型主要有3种:set(集)、list(列表)和map(映射)。
集合类的特点有三个:
1、集合类这种框架是高性能的。对基本类集(动态数组,链接表,树和散列表)的实现是高效率的。一般人很少去改动这些已经很成熟并且高效的APl;2、集合类允许不同类型的集合以相同的方式和高度互操作方式工作;
3、集合类容易扩展和修改,可以很容易地稍加改造就能满足自己的数据结构需求。
集合类带来的好处:
(1)降低编程难度:在编程中会经常需要链表、向量等集合类,如果自己动手写代码实现这些类,需要花费较多的时间和精力。调用Java中提供的这些接口和类,可以很容易的处理数据。
(2)提升程序的运行速度和质量:Java提供的集合类具有较高的质量,运行时速度也较快。使用这些集合类提供的数据结构,程序员可以从“重复造轮子”中解脱出来,将精力专注于提升程序的质量和性能。
(3)无需再学习新的APl:借助泛型,只要了解了这些类的使用方法,就可以将它们应用到很多数据类型中。如果知道了LinkedList的使用方法,也会知道LinkedList怎么用,则无需为每一种数据类型学习不同的API。
(4)增加代码重用性:也是借助泛型,就算对集合类中的元素类型进行了修改,集合类相关的代码也几乎不用修改。
常用的集合类:Map接口和Collection接口是所有集合框架的父接口。
- Collection接口的子接口包括:Set接口和List接口
- Map接口的实现类主要有:HashMap、TreeMap、Hashtable、ConcurrentHashMap以及Properties等
- Set接口的实现类主要有:HashSet、TreeSet、LinkedHashSet等
- List接口的实现类主要有:ArrayList、LinkedList、Stack以及Vector等
参考文章:JAVA集合的介绍及使用_java中集合的用法-优快云博客
二、数组和集合的区别,集合是否可以存储NULL
数组和集合的区别:
1.数组是大小固定的,一旦创建无法扩容;集合大小不固定,
2.数组的存放的类型只能是一种,集合存放的类型可以不是一种(不加泛型时添加的类型是Object);
3.数组是java语言中内置的数据类型,是线性排列的,执行效率或者类型检查(不懂),都是最快的.
ArrayList就是基于数组创建的容器类.
集合是否可以存储NULL :
List中全部可以存null
ArrayList 可以存null
LinkedList 可以存null
Queue队列中
只有LinkedList 可以存null Deque是Queue的子接口
Map中
HashMap 允许存null
LinkedHashMap 允许存null
TreeMap 不允许存nullHashtable不允许存null
Set
HashSet、LinkedSet可以存null
TreeSet 不允许存null
三、 ArrayList 与 LinkedList 的区别?ArrayList 和 Vector 的区别
ArrayList 与 LinkedList 的区别:
1.底层数据结构不同:ArrayList 的底层是基于数组来实现的&#