集合框架

特点:

1:对象封装数据,对象多了也需要存储。集合用于存储对象。

2:对象的个数确定可以使用数组,但是不确定怎么办?可以用集合。因为集合是可变长度的。

集合和数组的区别:

1:数组是固定长度的;集合可变长度的。

2:数组可以存储基本数据类型,也可以存储引用数据类型;集合只能存储引用数据类型。

3:数组存储的元素必须是同一个数据类型;集合存储的对象可以是不同数据类型。

数据结构:就是容器中存储数据的方式。

对于集合容器,有很多种。因为每一个容器的自身特点不同,其实原理在于每个容器的内部数据结构不同。

集合容器在不断向上抽取过程中。出现了集合体系。

在使用一个体系时,原则:参阅顶层内容。建立底层对象。

--< java.util >--Collection接口:

Collection:

|--List:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引。元素可以重复。

|--Set:无序(存入和取出顺序有可能不一致),不可以存储重复元素。必须保证元素唯一性。

1,添加:

add(object):添加一个元素

addAll(Collection):添加一个集合中的所有元素。

2,删除:

clear():将集合中的元素全删除,清空集合。

remove(obj):删除集合中指定的对象。注意:删除成功,集合的长度会改变。

removeAll(collection):删除部分元素。部分元素和传入Collection一致。

3,判断:

boolean contains(obj):集合中是否包含指定元素 。

booleancontainsAll(Collection):集合中是否包含指定的多个元素。

boolean isEmpty():集合中是否有元素。

4,获取:

int size():集合中有几个元素。

5,取交集:

boolean  retainAll(Collection):对当前集合中保留和指定集合中的相同的元素。如果两个集合元素相同,返回flase;如果retainAll修改了当前集合,返回true。

6,获取集合中所有元素:

Iterator  iterator():迭代器

7,将集合变成数组:

toArray();

List:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引。元素可以重复。

|--ArrayList:底层的数据结构是数组,线程不同步,ArrayList替代了Vector,查询元素的速度非常快。

|--LinkedList:底层的数据结构是链表,线程不同步,增删元素的速度非常快。

|--Vector:底层的数据结构就是数组,线程同步的,Vector无论查询和增删都巨慢。

--< java.util >--Set接口:

Set接口中的方法和Collection中方法一致的。Set接口取出方式只有一种,迭代器。

|--HashSet:底层数据结构是哈希表,线程是不同步的。无序,高效;

HashSet集合保证元素唯一性:通过元素的hashCode方法,和equals方法完成的。

当元素的hashCode值相同时,才继续判断元素的equals是否为true。

如果为true,那么视为相同元素,不存。如果为false,那么存储。

如果hashCode值不同,那么不判断equals,从而提高对象比较的速度。

|--LinkedHashSet:有序,hashset的子类。

|--TreeSet:对Set集合中的元素的进行指定顺序的排序。不同步。TreeSet底层的数据结构就是二叉树。

--< java.util >--Iterator接口:

迭代器:是一个接口。作用:用于取集合中的元素。

Map集合:

|--Hashtable:底层是哈希表数据结构,是线程同步的。不可以存储null键,null值。

|--HashMap:底层是哈希表数据结构,是线程不同步的。可以存储null键,null值。替代了Hashtable.

|--TreeMap:底层是二叉树结构,可以对map集合中的键进行指定顺序的排序。

Map集合存储和Collection有着很大不同:

Collection一次存一个元素;Map一次存一对元素。

Collection是单列集合;Map是双列集合。

Map中的存储的一对元素:一个是键,一个是值,键与值之间有对应(映射)关系。

特点:要保证map集合中键的唯一性。

1,添加。

put(key,value):当存储的键相同时,新的值会替换老的值,并将老值返回。如果键没有重复,返回null。

void putAll(Map);

2,删除。

void clear():清空

value remove(key):删除指定键。

3,判断。

boolean isEmpty():

boolean containsKey(key):是否包含key

boolean containsValue(value):是否包含value

4,取出。

int size():返回长度

value get(key):通过指定键获取对应的值。如果返回null,可以判断该键不存在。当然有特殊情况,就是在hashmap集合中,是可以存储null键null值的。

Collection values():获取map集合中的所有的值。

5,想要获取map中的所有元素:

原理:map中是没有迭代器的,collection具备迭代器,只要将map集合转成Set集合,可以使用迭代器了。之所以转成set,是因为map集合具备着键的唯一性,其实set集合就来自于map,set集合底层其实用的就是map的方法。

java基础知识梳理_java基础知识点梳理3相关推荐

  1. java基础知识面试_Java 基础面试知识点

    Java 基础知识相关 Java中 == 和 equals 和 hashCode 的区别 对于关系操作符 == 若操作数的类型是基本数据类型,则该关系操作符判断的是左右两边操作数的值是否相等 若操作数 ...

  2. java 基础知识巩固_Java基础巩固——《Java核心技术基础·卷一:基础知识》

    阅读记录追踪:前言部分 阅读前先看:简介.目录和勘误! Java编程语言是一种多用途.并发的.基于类的.面向对象的编程语言:编译时通常包括将持续转化成机器无关的字节码表示.运行时活动包括加载和链接执行 ...

  3. java基础知识一_Java基础知识(一)

    类与对象 1.对象:客观存在的一切事物称之为对象 类:具有相同属性和方法的对象的集合 2.类:属性,方法 3.修饰符: public protected  默认(不写)  private 任何地方   ...

  4. 基础java重点知识总结_Java基础知识要点总结

    1.数据类型 在java 中,要注意的是double,float,long这三种数据类型. java中默认小数类型都是double,因此在要用到float 时,要在小数的最后加上f或F,long类型也 ...

  5. 关于图计算图学习的基础知识概览:前置知识点学习(PGL)[系列一]

    关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL)) 0.1图计算基本概念 首先看到百度百科定义: 图计算(Graph Processin ...

  6. A.关于图计算图学习的基础知识概览:前置知识点学习(Paddle Graph L)【一】

    图学习图神经网络算法专栏简介:主要实现图游走模型(DeepWalk.node2vec):图神经网络算法(GCN.GAT.GraphSage),部分进阶 GNN 模型(UniMP标签传播.ERNIESa ...

  7. 蠕虫病毒往往是通过进入计算机系统,基础知识1计算机基础.doc

    大学计算机基础实验指导与测试 第二部分 基础知识 基础知识1 计算机基础 一 单选题 1.一般认为,信息(information)是_____. A.数据B.人们关心的事情的消息 C.反映物质及其运动 ...

  8. 计算机应用专业的基础知识,计算机应用专业基础知识考试大纲.doc

    计算机应用专业基础知识考试大纲 计算机应用专业基础知识考试大纲 一.考试目的 通过本次考试,了解考生对计算机基础理论知识的理解和掌握情况:检验学生对计算机硬件知识.PC操作的基础知识.对Word及EX ...

  9. 科学计算机程序 字表处理软件都是,计算机应用基础知识_计算机应用基础试题及答案【最新资料】.doc...

    计算机应用基础知识_计算机应用基础试题及答案[最新资料] 计算机应用基础知识 计算机应用基础试题及答案 ? 计算机应用基础知识1.1填空题1.第一代计算机采用的电子器件是--[答案] 电子管2.第四代 ...

  10. 公共基础知识计算机,公共基础知识计算机基础知识试题

    计算机基础知识是公共基础知识考试的组成成分之一,以下是由学习啦小编整理关于共基础知识计算机基础知识试题的内容,希望大家喜欢! 公共基础知识计算机基础知识试题 1.CPU的主要功能是进行( ). A.算 ...

最新文章

  1. java日期比较大小_java日期大小比较
  2. python资本市场财务数据分析_Python对股票财务数据进行可视化分析
  3. 将获取到的JSONObject和JSONArray转换为实体对象
  4. 递归计算Linux目录中的文件
  5. 值对于int32太大或太小怎么解决_深孔加工10种常见问题及解决措施,条条都是宝贝!...
  6. 捕获分组和非捕获分组以及命名分组
  7. 浅谈怎么玩好微博如何做微博营销
  8. unity图片拖不进去_Unity UGUI实现简单拖拽图片功能
  9. Spring Data:企业级Java的现代数据访问技术(影印版)
  10. 2020年首届算法竞赛网络挑战赛直播讲解课程
  11. 时间序列预测 预测时间段_应用时间序列预测:美国住宅
  12. 爱因斯坦鲜为人知的另一面
  13. HTTPS 跟 HTTP区别简述
  14. xml模块 增删改查
  15. [转]网站嵌入天气预报
  16. 面向切面编程:操作日志
  17. Rose环境和用例图
  18. SqlParameter的参数值为 null
  19. 开源免费好用的磁盘镜像工具Etcher
  20. AutoCAD2014下载和安装教程(官方中文完整版)

热门文章

  1. 2018我们要赢 (5 分)
  2. JavaScript距离当前日期倒计时的方法(Vue项目)
  3. PCL之常用开源数据集汇总
  4. 二维绕任意点旋转_解析几何|对称,平移和旋转
  5. 桌面云 服务器 价格,细数目前市场上桌面云的收费模式
  6. Server Installation for Jitsi Meet 2
  7. Python3 有序字典—OrderedDict()
  8. JavaScript 对象 和 函数
  9. 大访问量网站缓存的一点思考,个人看法,勿拍砖
  10. 面向对象JavaScript入门——来自Mozilla的官网教程