
数据结构
文章平均质量分 92
蹲街式等待
这个作者很懒,什么都没留下…
展开
-
Java中 List、Set、Map遍历方式以及性能比较
目录一、简介二、遍历方式1、ArrayList遍历方式(1)for循环遍历(2)foreach循环遍历(3)Iterator迭代器遍历2、LinkedList遍历方式(1)for循环遍历(2)foreach循环遍历(3)Iterator迭代器遍历3、HashSet遍历方式(1)foreach循环遍历(2)Iterator迭代器遍历4、HashMap遍历方式(1)entrySet遍历(2)Iterator迭代器遍历5、LinkedHashMap遍历方式(1)entrySet遍历(2)Iterator迭代器遍历原创 2022-01-13 22:40:37 · 8973 阅读 · 0 评论 -
HashMap实现原理及源码分析
目录一、什么是哈希表二、HashMap实现原理三、为何HashMap的数组长度一定是2的次幂?四、重写equals方法需同时重写hashCode方法五、总结一、什么是哈希表在讨论哈希表之前,我们先大概了解下其他数据结构在新增,查找等基础操作执行性能:数组: 采用一段连续的存储单元来存储数据。对于指定下标的查找,时间复杂度为O(1);通过给定值进行查找,需要遍历数组,逐一比对给定关键字和数...原创 2018-12-14 14:40:31 · 7426 阅读 · 0 评论 -
Java提高篇 —— String缓冲池
一、String缓冲池 首先我们要明确,String并不是基本数据类型,而是一个对象,并且是不可变的对象。查看源码就会发现String类为final型的(当然也不可被继承),而且通过查看JDK文档会发现几乎每一个修改String对象的操作,实际上都是创建了一个全新的String对象。 字符串为对象,那么在初始化之前,它的值为null,到这里就有必要提下””、n...原创 2018-08-15 18:48:16 · 5248 阅读 · 0 评论 -
Java提高篇 —— Java关键字之final的几种用法
一、前言 在java的关键字中,static和final是两个我们必须掌握的关键字。不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构。下面我们来了解一下final关键字及其用法。 二、final关键字 在java中,final的含义在不同的场景下有细微的差别,但总体上来说,它指的是“这是不可变的”。...原创 2018-08-12 18:13:40 · 4074 阅读 · 0 评论 -
Java提高篇 —— Java内部类详解
一、简介 内部类是一个非常有用的特性但又比较难理解使用的特性。 内部类我们从外面看是非常容易理解的,无非就是在一个类的内部在定义一个类。public class OuterClass { private String name ; private int age; public String getName() { ...原创 2018-08-14 18:07:24 · 7757 阅读 · 0 评论 -
Java提高篇 —— Java浅拷贝和深拷贝
一、前言 我们知道在Java中存在这个接口Cloneable,实现该接口的类都会具备被拷贝的能力,同时拷贝是在内存中进行,在性能方面比我们直接通过new生成对象来的快,特别是在大对象的生成上,使得性能的提升非常明显。然而我们知道拷贝分为深拷贝和浅拷贝之分,但是浅拷贝存在对象属性拷贝不彻底问题。下面我们就具体来看一下深浅拷贝问题。 二、定义 首先来看看浅拷贝和深...原创 2018-08-14 15:31:24 · 3871 阅读 · 0 评论 -
Java提高篇 —— 抽象类与接口
一、前言 接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。 抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力。他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别。 二、抽象类 我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通...原创 2018-08-14 14:30:13 · 3927 阅读 · 0 评论 -
Java提高篇 —— Java三大特性之多态
一、前言 面向对象编程有三大特性:封装、继承、多态。 封装:隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。 继承:是为了重用父类代码。两个类若存在IS-A的关系就可以使用继承。,同时继承也为实现多态做了铺垫。那么什么是多态呢?多态的实现机制又是什...原创 2018-08-14 10:28:49 · 3938 阅读 · 0 评论 -
Java提高篇 —— Java关键字之static的四种用法
一、前言 在java的关键字中,static和final是两个我们必须掌握的关键字。不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构。下面我们先来了解一下static关键字及其用法。 二、static关键字 1、修饰成员变量 在我们平时的使用当中,static最常用的功能就是修饰类的属性和方法,...原创 2018-08-10 18:04:47 · 7218 阅读 · 0 评论 -
Java提高篇 —— Java三大特性之继承
一、前言 在《Think in java》中有这样一句话:复用代码是Java众多引人注目的功能之一。但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情。在这句话中最引人注目的是“复用代码”,尽可能的复用代码使我们程序员一直在追求的,现在我来介绍一种复用代码的方式,也是java三大特性之一——继承。 二、继承 ...原创 2018-08-14 09:57:40 · 7108 阅读 · 0 评论 -
Java提高篇 —— Java三大特性之封装
一、封装 封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。也就是说用户是无需知道对象内部的细节(当然...原创 2018-08-14 09:35:13 · 7020 阅读 · 0 评论 -
Java中String、StringBuffer、StringBuilder三者的区别
一、简介 String、StringBuffer、StringBuilder三个类之间的区别主要是在两个方面:运行速度和线程安全。二、区别1、运行速度,或者说是执行速度 在这方面运行速度快慢为:StringBuilder > StringBuffer > StringString String为字符串常量,是不可变的对象,因此在每次对 String 类型进...原创 2018-03-12 21:16:32 · 4706 阅读 · 0 评论 -
Java基础知识(一)
一、接口类描述了一个实体,包括实体的状态,也包括实体可能发出的动作。接口定义了一个实体可能发出的动作。但是只是定义了这些动作的原型,没有实现,也没有任何状态信息。所以接口有点象一个规范、一个协议,是一个抽象的概念;而类则是实现了这个协议,满足了这个规范的具体实体,是一个具体的概念。从程序角度,简单理解,接口就是函数声明,类就是函数实现。需要注意的是同一个声明可能有很多种原创 2017-10-25 15:53:33 · 7112 阅读 · 0 评论 -
值类型和引用类型的区别
一、定义引用类型表示你操作的数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量的值,那么调用这个方法是传入的变量的值也将改变。值类型表示复制一个当前变量传给方法,当你在这个方法中改变这个变量的值时,最初生命的变量的值不会变。值类型也就是基本数据类型 基本数据类型常被称为四类八种。四类八种:整型(4种):byte(1 byte)、short(2 byte)、int(4原创 2017-10-25 10:07:08 · 20114 阅读 · 3 评论 -
浅谈equals与==
一、前言示例代码: public static void main(String[] args) throws IOException { String str1 = new String("hello"); String str2 = new String("hello"); String str3 = "cde"; String原创 2017-10-24 19:53:22 · 7014 阅读 · 0 评论 -
Android中List、Set、Map数据结构详解
Android中一般使用的数据结构有java中的基础数据结构List,Set,Map。还有一些Android中特有的几个,SparseArray(使用Map时Key是int类型的时候可以用这个代替)等。 继承关系: Collection<–List<–ArrayList Collection<–List<–Vector Collectio...原创 2017-10-19 16:05:25 · 14729 阅读 · 0 评论