美文网首页
Java为什么要有集合?集合有什么用?

Java为什么要有集合?集合有什么用?

作者: 源码时代官方 | 来源:发表于2020-11-03 17:41 被阅读0次
image

在学习集合之前,我们需要思考的是为什么要有集合?集合有什么用?

我们知道,在java中有数组的概念,数组可以用来存放一组数据。但是,数组是固定长度的,这样在使用的时候就会有很多的不方便,比如说资源的浪费。这个时候,我们就希望有一种可以动态改变大小的数组,那就是集合的作用了。Java 所有的集合类都位于 java.util 包下,提供了一个表示和操作对象集合的统一构架,包含大量集合接口,以及这些接口的实现类和操作它们的算法。java中的集合主要分为Collection和Map两种:

Collection<E>作为单值操作的最大父接口,提供了一些对集合中元素的基本操作,在实际的开发中,我们基本上不会直接去使用Collection<E>,而是使用其子接口List<E>,Set<E>。

List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。和下面要提到的Set不同,List允许有相同的元素。

Set是一种不包含重复的元素的Collection,即任意的两个元素e1和e2都有e1.equals(e2)=false,Set最多有一个null元素。很明显,Set的构造函数有一个约束条件,传入的Collection参数不能包含重复的元素。

Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键对象和一个值对象。其中,键对象不允许重复,而值对象可以重复,并且值对象还可以是 Map 类型的,就像数组中的元素还可以是数组一样。

Map中包括一个内部类Entry,该类封装一个键值对,常用方法:

Object getKey():返回该Entry里包含的key值;

Object getvalue():返回该Entry里包含的value值;

Object setValue(V value):设置该Entry里包含的value值,并设置新的value值

与HashSet集合不能保证元素顺序一样,HashMap和Hashtable也不能保证键值对的顺序。他们判断两个key相等的标准也是:两个key通过equals方法比较返回true,两个key的hashCode值也相等。而判断value值相等的标准:只要两个对象通过equals方法比较返回true即可。

这里再多提一下就是常见的面试题:Hashtable和HashMap的区别?

Hashtable是线性安全的,HashMap是线性不安全的,所以效率更高。

Hashtable不允许使用null作为key和value,否则会引发异常,而HashMap可以;

image

相关文章

  • Java为什么要有集合?集合有什么用?

    在学习集合之前,我们需要思考的是为什么要有集合?集合有什么用? 我们知道,在java中有数组的概念,数组可以用来存...

  • Java集合框架概述

    标签(空格分隔): Java集合框架 问题思考 什么是集合框架? 为什么用集合框架? 怎么用集合框架? 问题解决 ...

  • Java 为什么要有接口? Interface

    我好像知道java为什么要有接口了 我们以java 集合框架为例Java集合类图框架.jpg 其中Collecti...

  • 深入学习java系列之集合框架

    集合概述 java 集合部分主要有 java 集合框架相关的内容和 java 泛型相关的内容。 集合是用来做什么的...

  • Java学习22:集合

    集合 什么是集合?有什么用?数组其实就是一个集合。集合实际上就是一个容器。可以来容纳其他类型的数据。 集合为什么说...

  • Java基础

    Java集合框架 一、Java集合类简介: Java集合大致分为四种体系:Set:无序、不可重复的集合List:有...

  • Java List集合源码分析

    java的集合是常用的类,也是面试官非常喜欢的问题。下面我们的集合主要有set集合、list集合和Set集合。这篇...

  • 面试系列之java集合

    1.java集合接口 集合类在java.util包下,主要有Set、List和MapCollection:Coll...

  • java高级-集合collection/map

    前言 类似map、list、set等集合经常在项目中使用,今天在这里做个总结 为什么要有集合 java中基础的数据...

  • 一篇文章,全面解读Android面试知识点

    Java Java基础 Java集合框架 Java集合——ArrayList Java集合——LinkedList...

网友评论

      本文标题:Java为什么要有集合?集合有什么用?

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