1、foreach遍历ArrayList过程中使用 add 和 remove我们先来看看使用foreach遍历ArrayList过程中使用 add 和 remove 会出现什么样子的结果,然后再分析一下。public static void main(String[] args) {List<Integer> list = new ArrayLi …
最新内容
目录:要求十进制转二进制,首先我们想到的是除2求余法,比如数字15,如下,不断的除以2,一直到0为止,最后将余数倒序排列就是该数的二进制表示152 = 7 --------余172 = 3 --------余132 = 1 --------余112 = 0 --------余1所以15的二进制表示就是1111,再举一例,5 …
插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序,因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。算法特性稳定性插入排序是一种稳定性的排序算法。时间复杂度插入排序的 …
前言Java集合框架的知识在Java基础阶段是极其重要的,我平时使用List、Set和Map集合时经常出错,常用方法还记不牢,于是就编写这篇博客来完整的学习一下Java集合框架的知识,如有遗漏和错误,欢迎大家指出。以下是我整理的大致Java集合框架内容,本篇博客就是围绕以下内容展开1、集合概念1.1、概念:对象的容器,定义了对多个对象进行操作的常用方法。可实 …
作者 |积淀来源 | urlify.cn2YZney内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存。 引起内存溢出的原因有很多种,常见的有以下几种: 1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据; 2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收; 3.代码 …
1 枚举(Enumeration)1.1 Enumeration源码:public interface Enumeration<E> { boolean hasMoreElements(); E nextElement();}Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素。这种传统接口已被迭代器取 …
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。大家好,我是小彭。在上一篇文章里,我们聊到了基于链表的 Queue 和 Stack 实现 —— LinkedList。那么 Java 中有没有基于数组的 Queue 和 Stack 实现呢?今天我们就来聊聊这个话题。小彭的 Android 交流群 02 群已经建立啦~思 …
前言我们在提高开发效率,也应该提高代码的执行效率,注重代码的质量。如何提高,其中的一个好办法就是阅读源码,知其然知其所以然。下面我就以面试问答的形式学习我们的最常用的装载容器——ArrayList(源码分析基于JDK8)问答内容1.问:ArrayList有用过吗?它是一个什么东西?可以用来干嘛?答:有用过,ArrayList就是数组列表,主要用来装载数据,当 …
完全二叉树完全二叉树的定义满二叉树非完全二叉树,非满二叉树完全二叉树完全二叉树的特点叶子结点只能出现在最下层和次下层,且最下层的叶子结点集中在树的左部。完全二叉树的实现二叉链表:直观,但占用内存大。数组:简洁,但拓展麻烦。比较推荐使用数组存储,本文也将基于数组存储介绍大顶堆的实现。基于数组存储的完全二叉树节点与数组下标的关系假设完全二叉树的 节点 A 存储在 …
CopyOnWriteArrayList和CopyOnWriteArrayList因为CopyOnWriteArraySet底层也是使用了CopyOnWriteArrayList来实现的,所以本篇文章以CopyOnWriteArrayList讲解为主。CopyOnWriteArrayList是JDK1.5之后提供的一个List接口的实现子类,位于java.u …