集合   链接:https://blog.csdn.net/weixin_42504145/article/details/83119088

数组:

java的数组既可以存储基本数据类型,也可以存储引用数据类型,它本身也是一种引用数据类型。(且存放的类型必须一致)

集合:

  1. 存放其它对象的对象,且只能是对象(即引用数据类型) 由数组的缺点引出集合(长度 不可变且连续)
  2. 所有Java集合类都位于java.util包中

为单值(单个值)

.

为双值(键值对)

Map是一种把键对象和值对象进行映射的集合,它的每一个元素都包含一对键对象和值对象。向Map集合中加入元素时,必须提供一对键对象和值对象,从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象。Map集合中的键对象不允许重复,如以相同的键对象加入多个值对象,第一次加入的值对象将被覆盖

Map:

键不可以重复,键确定,值确定(值可以重复)

Put(key,value):插入:相同的key会被最新的替换,值重复没关系,key允许为null或者值为null

get(key):获取key对应的值

Map接口中定义了Entry接口

为什么Set、List集合可以调用iterator方法,然后使用迭代器进行遍历,而Map集合不能使用迭代器遍历?

因为Set、List集合都继承了Collection接口,而Collection接口又继承了Iterable接口,Iterable接口中提供了iterator方法,该方法可以返回一个迭代器,用来遍历集合。Map集合则没有继承该接口。

Java中集合主要分为三种类型:

. Set : 无序,并且没有重复对象。不支持null(写实例时要先完善hashcode 和equals,是根据这个去重!)

. List: 有序(放入的先后的次序), 可重复。允许null值

. Map : 集合中的每一个元素包含一对键对象和值对象,集合中没有重复的键

对象,值对象可以重复

SortedSet:已经完成排序(修改其中数据后不会再次排序了)

SortedMap:对键排好序

顺序表:

ArrayList: 数组实现(插入删除效率低,查找效率高)

LinkedList:链表实现(插入删除效率高,查找效率低)

VectorList:适用于多线程的表,类似ArrayList,但是效率低一些

Hash表:

HashSet:按照哈希算法来存取集合中的对象,存取速度比较快(写实例时要先完善hashcode 和equals,是根据这个去重!)

TreeSet: TreeSet实现了SortedSet接口,能够对集合中的对象进行排序,不支持null

HashMap: 按哈希算法来存取键对象,有很好的存取性能

TreeMap:  实现了SortedMap接口,能对键对象进行排序

Iterator:默认初始位置在最左侧

对象如果没有重写toString方法,则默认是Object的方法返回值: 类名@哈希值

输出语句怎么把int转化为String类型:+ “ ”  通过+链接强制转换一下字符串

每个对象都自带equals()和hasCode()方法。是Object(所有类的超类)自带的

为什么要用equals,因为set不能重复,谁不能重复?自己定义的类的对象不能,那就必须该对象要用equals判断,且要重写,因为它不是基本类型,是类类型,而用hashCode是为了减少循环次数。hashCode和equals一般是配套重写的,一般是先判断hashCode再equals

java篇 之 集合的更多相关文章

  1. 大数据学习笔记——Java篇之集合框架(ArrayList)

    Java集合框架学习笔记 1. Java集合框架中各接口或子类的继承以及实现关系图: 2. 数组和集合类的区别整理: 数组: 1. 长度是固定的 2. 既可以存放基本数据类型又可以存放引用数据类型 3 ...

  2. 【JAVA秒会技术之秒杀面试官】秒杀Java面试官——集合篇(一)

    [JAVA秒会技术之秒杀面试官]秒杀Java面试官——集合篇(一) [JAVA秒会技术之秒杀面试官]JavaEE常见面试题(三) http://blog.csdn.net/qq296398300/ar ...

  3. Java中的集合List - 入门篇

    前言 大家好啊,我是汤圆,今天给大家带来的是<Java中的集合List - 入门篇>,希望对大家有帮助,谢谢 简介 说实话,Java中的集合有很多种,但是这里作为入门级别,先简单介绍第一种 ...

  4. Java中的集合Set - 入门篇

    前言 大家好啊,我是汤圆,今天给大家带来的是<Java中的集合Set - 入门篇>,希望对大家有帮助,谢谢 简介 前面介绍了集合List,映射Map,最后再简单介绍下集合Set,相关类如下 ...

  5. Java面试专题-集合篇(2)

  6. JSON总结(java篇)

    JSON总结(java篇一) JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于 ...

  7. 【转】Java如何克隆集合——深度拷贝ArrayList和HashSet

    原文网址:http://blog.csdn.net/cool_sti/article/details/21658521 原英文链接:http://javarevisited.blogspot.hk/2 ...

  8. Java 常用List集合使用场景分析

    Java 常用List集合使用场景分析 过年前的最后一篇,本章通过介绍ArrayList,LinkedList,Vector,CopyOnWriteArrayList 底层实现原理和四个集合的区别.让 ...

  9. Java回顾之集合

    在这篇文章里,我们关注Java中的集合(Collection).集合是编程语言中基础的一部分,Java自JDK早期,就引入了Java Collection Framework.设计JCF的那个人,后来 ...

随机推荐

  1. 在vue中使用swiper4.x

    需求 :实现一个左右两边有边距的轮播图vue+swiper4 轮播图左右两边含有上一张和下一张的一部分 先安装swiper: 1.npm install swiper 安装swiper   2.在入口 ...

  2. [HNOI2014] 道路堵塞 - 最短路,线段树

    对不起对不起,辣鸡蒟蒻又来用核弹打蚊子了 完全ignore了题目给出的最短路,手工搞出一个最短路,发现对答案没什么影响 所以干脆转化为经典问题:每次询问删掉一条边后的最短路 如果删掉的是非最短路边,那 ...

  3. Linux package installation: deb and rpm

    一般来说著名的 Linux 系统基本上分两大类: RedHat 系列:Redhat.Centos.Fedora 等 Debian 系列:Debian.Ubuntu 等 Dpkg (Debian系): ...

  4. SpringMVC进行Ajax请求页面显示乱码

    最近在项目的使用过程中发现在springmvc的项目中,使用返回页面的请求方式,数据都能正常显示,但是对于ajax的请求,始终显示乱码. 首先第一种是因为我们在web.xml中配置了spring的字符 ...

  5. POJ3273 Monthly Expense (二分最小化花费)

    链接:http://poj.org/problem?id=3273 题意:FJ想把n天分成m组,每组是连续的,同一组的花费加起来算,求所分组情况中最高花费的最低值 思路:二分答案.二分整数范围内的花费 ...

  6. 第三十篇 玩转数据结构——字典树(Trie)

          1.. Trie通常被称为"字典树"或"前缀树" Trie的形象化描述如下图: Trie的优势和适用场景 2.. 实现Trie 实现Trie的业务无 ...

  7. object转为string

    object为null时 错误:object.tostring() 空指针 正确:(string)object

  8. PyInstaller用法

    pyinstaller定义:PyInstaller是一个压缩python文件成为可执行程序的一个软件. pyinstaller工作原理:① 它会扫描你所有的Python文档,并分析所有代码从而找出所有 ...

  9. 后缀数组 poj 3415

    首先,height[i]-k+1  很好理解把,他是说明目前这对后缀中不小于k的公共子串个数. 题解说用单调栈维护,为什么要用单调栈维护呢?因为时间复杂的可以大大降低. 怎么个降低方法呢? 在之前学习 ...

  10. 10-Java-JSTL标签库的使用

    使用JSTL标签库使用 第一步:引入相关jar包到WEB-INF/lib/,JSTL标签库(standard.jar,jstl.jar) 第二步:在JSP文件中通过 taglib指令引入标签库,例如: ...