首页 > 编程语言 >Java学习日记 Day3 最难绷的一集

Java学习日记 Day3 最难绷的一集

时间:2024-01-18 21:11:33浏览次数:23  
标签:一集 迭代 Iterator 实现 Day3 接口 链表 Java 方法

JavaSE
①LinkedList和ArrayList的区别:简单来说后者底层实现是数组,而前者是双向链表。
②LinkedList的底层实现:对于集合的添加操作就是链表的操作原理,如果是空的添加,那么首尾指针都是当前节点,如果不是空,那就是当前的Last指针指向待添加节点,然后使Last指针指向该节点。
而get方法的实现,在底层用了一个提高速率的方法,如果是在前半段从头往后找。反之从后往前找。
③Iterable、iterator()、Iterator之间的区别:这是个重点。首先Iterable是一个接口,他被Collection所继承,在他里面实现了一个抽象方法就是iterator()。抽象方法需要在实现类中具体实现,这个实现类是ArrayList。方法的返回值就是Iterator接口,这就是三者的联系。在Iterator接口中实现了我们常用的两个方法,hasNext和next,这两个是抽象方法,同样需要具体实现,他在Itr这个类(ArrayList的内部类)中得到了具体实现。很重要的一个知识点、。
④ListIterator迭代器:自己就能够实现迭代和增加操作,功能更强大。而Iterator迭代器在迭代中调用对象进行增加会报错。
-------分割线--------
上面为止就把List接口这边的学完了。然后是Set接口这边。
⑤相比List来说set是无序且唯一的。因为前者是链表或者数组。Set唯一代表一样的值不会重复存储。
⑥HashSet:在HashSet中索引值是通过equals和hascode方法计算的,如果两个不同的数据索引值相等,会接着用链表储存数据位置。
⑦LinkedHashSet:这个set是有序的,因为有一个另外的链表记录数据顺序。
⑧比较器:再说TreeMap前要说一下比较器,他是Treemap实现的基础。比较器分为内部和外部,内部的是类直接实现接口,在类中重写方法。外部的是自定义类实现接口,重写方法。更好的继承。
⑨TreeMap:我们既可以说他无序,也可以说他有序。有序是因为他是从小到大排列。存放时用了二叉树,比较大小用了比较器。
-------分割线--------
胃肠感冒了。。今天到此为止,明天算法+Map

标签:一集,迭代,Iterator,实现,Day3,接口,链表,Java,方法
From: https://www.cnblogs.com/zygacmg/p/17971984

相关文章

  • day 02java入门之Hello.java
    java命令行执行(注意代码编写用GBK,命令行窗口用GBK进行解析)注意public类名要和文件名一致,一个.java文件中最多只有一个public类java注意事项一个.java文件中若含有多个类时,编译完成后会生成相应个数的.class文件......
  • 17_Java基础-文档注释+javadoc
    JavaDocjavados命令是用来生成自己API文档的参数信息:@author作者名@version版本号@since指明需要最早使用的jdk版本(开发这个程序所用的版本)@param参数名@return返回值情况@throws异常抛出情况Javadoc【java文件】通过命令行javadoc+参数生成java文件......
  • stable Diffusion java接口
    StableDiffusionJava接口介绍引言在现代计算机科学中,信息传播或数据扩散是一个重要的概念。它可以用来模拟和分析各种现象,如社交网络中的信息传播、病毒传播以及多个实体之间的通信等。稳定扩散是一种特殊类型的信息传播,它指的是在一段时间内,信息传播的速度和传播范围达到了一......
  • java AI写作
    使用Java实现AI写作作为一名经验丰富的开发者,我将教会你如何使用Java实现AI写作。在本文中,我将向你展示实现这一目标的步骤,并提供每个步骤所需的代码示例和注释。整体流程下面是使用Java实现AI写作的整体流程。你可以使用下面的表格来记录每个步骤的详细信息。步骤描述......
  • JavaScript数组使用方法
    constarr=[4,3,2,1];/*操作数组*///在末尾添加元素arr.push(5);//结果:[4,3,2,1,5]//在开头添加元素arr.unshift(0);//结果:[0,4,3,2,1,5]//移除最后一个元素arr.pop();//结果:[0,4,3,2,1]//移除第一个元素arr.shift();//结果:[4,3,2......
  • 算法学习Day30 n皇后
    Day30n皇后ByHQWQF2024/01/16笔记51.N皇后按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n 皇后问题研究的是如何将n 个皇后放置在n×n的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数n,返回所有不同的 n皇后问题的解决方......
  • 毕设2:JavaFX预览PDF
    找了一些资料,汇总一下。1.封装好的PDF预览器PDFViewerFXGitHub上的一个预览器,封装了pdf.js,也就是通过塞一个浏览器进app来解析pdf。试了一下功能不知道为什么疯狂error,动一动给就卡死了。OpenViewerFX 神秘预览器,除了maven全网查无此人。顺着官网,也就是Jpedal的公司找过去......
  • java 基础常见(上)
    titlecategorytagheadJava基础常见面试题总结(上)JavaJava基础metanamecontentkeywordsJVM,JDK,JRE,字节码详解,Java基本数据类型,装箱和拆箱metanamecontentdescription全网质量最高的Java基础常见知识点和面试题......
  • Copilot测试java
    Copilot测试java实现流程1.简介Copilot是GitHub最近推出的一款基于机器学习的代码编写助手,它可以根据上下文和注释自动生成代码。本文将介绍如何在Java开发中使用Copilot进行代码测试。2.准备工作在开始使用Copilot测试Java之前,你需要先完成以下准备工作:安装并配置好Java开......
  • java调用文心一言实现聊天机器人
    Java调用文心一言实现聊天机器人随着人工智能的发展,聊天机器人在我们的生活中扮演着越来越重要的角色。聊天机器人能够与人类进行对话,提供信息和解决问题,为我们带来了很多便利。在本文中,我们将介绍如何使用Java编程语言调用文心一言API来实现一个简单的聊天机器人。首先,我们需要......