一、集合

1、介绍

  • 红色为接口
  • 蓝色为实现类

2、三种遍历方式

  • 迭代器
  • 增强for
  • lambda表达式
        Integer[] arr = col.toArray(new Integer[col.size()]);
Arrays.sort(arr, (i1, i2) -> i2 - i1);
System.out.println(Arrays.toString(arr)); // 迭代器 这里不允许修改数据,否则报并发错误
Iterator<Integer> it = col.iterator();
while (it.hasNext()){
System.out.println(it.next());
} // 增强for,注意 这里给item赋值不会影响集合的值
for (Integer item : col) {
System.out.print(item + " = ");
item = 10;
System.out.println(item);
}
System.out.println(StrUtil.toString(col)); // lambda ,注意 这里给item赋值不会影响集合的值
col.forEach(l-> System.out.println(l));
col.forEach(System.out::println);

二、数据结构

1、8种数据结构

  • 栈 :先进后出,后进先出

  • 队列:先进先出,后进后出

  • 数组:内存连续区域,查询快,增删慢

  • 队列:元素是游离的,查询慢,增删快,收尾操作极快

  • 二叉树

    • 度:每一个节点的子节点树 (二叉树 <=2)
    • 树高:树的总层数
    • 根节点:最顶层的节点
    • 左子节点:左下方的节点
    • 右子节点:右下方的节点
    • 根节点的左子树:左下方的所有节点
    • 根节点的右子树:右下方的所有节点
  • 二叉查找树(不一定都有左右节点)

    • 所有节点遵循:左孩子 < 父节点 < 右孩子
    • 小的存左边
    • 大的存右边
    • 相等的不存
    • 遍历
      • 前序遍历:当前-左-右
      • 中序遍历:左-当前-右
      • 后续遍历:左-右-当前
      • 层级遍历:从上到下一层一层
  • 平衡二叉树(任意节点左右子树高度差不超过1)

  • 红黑树



三、双列集合



  • 三种遍历
// 第一种遍历 keySet
Set<Integer> set = map.keySet();
set.forEach(k -> System.out.println(k + "=" + map.get(k)));
// 第二种遍历 EntitySet
Set<Map.Entry<Integer, String>> entries = map.entrySet();
entries.forEach((e) -> System.out.println(e.getKey() + "=" + e.getValue()));
for (Map.Entry<Integer, String> e : entries) {
System.out.println(e.getKey() + "=" + e.getValue());
}
// 第三种遍历 forEach
map.forEach((key, value) -> System.out.println(key + "=" + value));

java的集合以及数据结构的更多相关文章

  1. Java的数组,集合,数据结构,算法(一)

    本人的愚见,博客是自己积累对外的输出,在学习初期或自己没有多少底料的情况下,与其总结写博客不如默默去搞自己的代码,但是学到集合这一块时,数组,集合,数据结构,算法这个概念搞的我比较混淆,所以不得已写这 ...

  2. Java 之 集合框架(JCF)

    1.集合框架 a.框架:为了实现某一目的或功能,而预先提供的一系列封装好的.具有继承或实现关系的类与集合 b.集合:①定义:Java中对一些数据结构和算法进行封装,即封装(集合也是一种对象) ②特点: ...

  3. 【Java】集合_学习笔记

    一.集合 1.集合类也称容器类,主要负责保存.盛装其他数据. 2.集合可以保存数量不确定的数据,保存具有映射关系的数据(也称关联数组). 3.Java5后提供一些多线程安全的集合类,放在java.ut ...

  4. java的集合框架最全详解

    java的集合框架最全详解(图) 前言:数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作 ...

  5. 谈谈Java的集合组件

    让我们一起谈谈Java的集合组件 我们在使用Java的时候,都会遇到并使用到Java的集合.在这里通过自己的理解和网上的资源对Java的集合方面的使用做一个简单的讲解和总结. Java主要分为3个集合 ...

  6. Java学习-集合(转)

    在编写java程序中,我们最常用的除了八种基本数据类型,String对象外还有一个集合类,在我们的的程序中到处充斥着集合类的身影!java中集合大家族的成员实在是太丰富了,有常用的ArrayList. ...

  7. java的集合框架之一

    java是一套很成熟的东西,很多商用的东西都喜欢用它,用的人多,稳定.不过一般也不怎么说起它,因为太常见了,私下里说,写java应用层得就像农民工,每一处都是搭积木,根据设计师的东西如何优雅地搭好积木 ...

  8. 浅谈Java的集合框架

    浅谈Java的集合框架 一.    初识集合 重所周知,Java有四大集合框架群,Set.List.Queue和Map.四种集合的关注点不同,Set 关注事物的唯一性,List 关注事物的索引列表,Q ...

  9. Java之集合初探(一)

    一.集合概述.区别 集合是一种容器,数组也是一种容器 在Java编程中,装各种各样的对象(引用类型)的叫做容器. 为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的 ...

  10. Java面向对象 集合(下)

      Java面向对象 集合(下) 知识概要:               (1)Map集合的体系结构 (2)Map集合的方法 (3)HashMap TreeMap (4)集合框架中的常用工具类 ( ...

随机推荐

  1. Cookie之记录用户上次访问时间

    Cookie之记录用户访问时间 需求: 需求: 1:用户访问服务器(Servlet),判断用户是否是第一次访问,如果是第一次访问,则在页面响应内容为:"您好,欢迎您首次访问"; 2 ...

  2. Redis Stack(生产适配-仅提供 Redis Stack 服务器) (6.2.4-v2版本)

    一.使用docker安装(生产适配-仅提供 Redis Stack 服务端) (6.2.4-v2版本) 简介 安装命令根据实际部署情况调整 版本地址:官方镜像主页 | 发布版Tags 指定版本命令-推 ...

  3. 每次 git 都需要输入用户名和密码的解决办法

    git config --global credential.helper store git pull /git push (第一次输入,下次就不用再次输入数据)

  4. Spring全家桶(一)之Spring总结

    0. Spring常用注解汇总 Spring常用注解汇总 使用注解之前要开启自动扫描功能,其中base-package为需要扫描的包(含子包). <context:component-scan ...

  5. elementUI合并单元格

    <el-table :data="tableDataFormat" border :header-cell-style="{background:'#FAFAFA' ...

  6. 【SSO单点系列】(5):CAS4.0 之JDBC

    deployerConfigContext.xml 修改对应添加以下代码 <bean id="SearchModeSearchDatabaseAuthenticationHandler ...

  7. 初学银河麒麟linux笔记 第一章 虚拟机、麒麟系统、QT安装与运行

    由于手头一个项目的QT软件开发需要在银河麒麟系统上运行,借此机会开始从头学习linux系统 首先下载虚拟机VMware 16和麒麟系统iso,这里参考的 https://blog.51cto.com/ ...

  8. C/C++中的可变参数

    所需的函数参数不固定,需要用到带有可变参数的函数,类似printf();项目中需要打印信息等也会用到带可变参数的函数. C语言标准库的头文件 #include<stdarg.h>包含一组能 ...

  9. Request processing failed;

    用 ssm 框架修改数据库数据时,出现了 Request processing failed; nested exception is org.mybatis.spring.MyBatisSystem ...

  10. springboot docker打包镜像

    首先在idea中创建springboot项目,pom文件packaging 为jar ,然后编写接口. 编写Dockerfile 注意Dockerfile只能这样命名. 使用maven打包命令或者使用 ...