ziheng's Blog

zihengCat is here!

Java 数据结构与算法 - 链表

Java Data Structure and Algorithm - Linked List

链表(Linked List)数据结构概览链表(Linked List)是线性表的一种(线性表包含顺序表与链表),通过指针将一系列位于不连续的内存空间中的元素连接起来,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理,但也失去了快速随机存取的优点,同时增大了内存开销(存储指针域)。 链表数据结构由一连串节点(Node)组成,每个节点包含数据域(Data Fields)和一或两个用来......

LeetCode - 704. 二分查找

LeetCode - 704. Binary Search

前言本文记录 LeetCode - 704. 二分查找 问题。 问题描述输入一个已排序(升序)的、拥有n个元素的整型数组nums与一个目标数target,请你实现一个函数,在整型数组中搜索目标数。如果该数存在,返回其在数组中的索引下标,不存在则返回-1。 Input: nums = [-1,0,3,5,9,12], target = 9 Output: 4 Explanation: 9 ex......

LeetCode - 049. 相同字母异序词归类

LeetCode - 049. Group Anagrams

前言本文记录 LeetCode - 049. 相同字母异序词归类 问题。 问题描述输入一个字符串数组,请你将数组中的字符串按相同字母异序词归类并输出。 Input: ["eat", "tea", "tan", "ate", "nat", "bat"] Output: [ ......

了解「多线程」技术

Understanding Multithreading Technology

前言本文是「多线程」技术入门篇,对进程、线程、纤程、并发、并行、线程安全、竞态条件等概念进行介绍,讨论多线程技术的实现原理、使用中可能遇到的问题,以及如何正确处理问题。 随着计算机硬件(Computer Hardware)和操作系统(Operating System)的进步,现代计算机能够同时执行多个任务,使程序执行速度更快,程序响应时间更短。 在软件开发中使用并发既诱人又困难,需要了解计算......

Java 高级教程系列 - Map 接口及其实现

Java Tutorial for Language Adavanced - Map Interface and Implementations

Java 集合框架 Map 接口Java 集合框架Map结构代表键值对(Key-Value)集合,一枚键值对组<Key, Value>在Map中被称为Entry。Map中的键与值必须为引用类型(Reference Type),基本数据类型(如:int、double)不能直接装入Map,但可以通过自动装拆箱转换为包装类型后再装入。 一枚Map容器,键不允许重复,至多允许一枚null......

Java 高级教程系列 - Deque 接口及其实现

Java Tutorial for Language Adavanced - Deque Interface and Implementations

Java 集合框架 Deque 接口Java 集合框架中的Deque接口,其模型定义为:一种支持从双端插入或移除元素的线性表数据结构,是对队列结构的扩展,一般被称为双端队列(Double Ended Queue),简称 Deque 。 注:Deque读音为 deck ,不为 de queue 。 public interface Deque<E> extends Queue&......

Java 高级教程系列 - Queue 接口及其实现

Java Tutorial for Language Adavanced - Queue Interface and Implementations

Java 集合框架 Queue 接口Java 集合框架中的Queue接口,模拟数据结构中的队列。队列有入点(Entry Point)与出点(Exit Point),队列的入点被称为队尾(Tail),队列的出点被称为队头(Head),队列元素从队尾进入,从队头流出,队列是一种先进先出(FIFO)的线性表数据结构。 队列一般包含三项基本操作: 从队尾添加元素(入队) 从队头移出元素(出队) ......

Java 高级教程系列 - List 接口及其实现

Java Tutorial for Language Adavanced - List Interface and Implementations

Java 集合框架 List 接口Java 集合框架存在List接口,表示:元素有序排列的集合序列(Sequence),也被称为线性表、列表。线性表内部的元素按先后顺序依次排列,相同元素可以重复出现。 Java 集合框架List接口继承了Collection接口,并添加了对列表元素以索引方式进行访问的方法,你可以将一枚元素添加到列表的指定位置,列表索引从零开始(Zero-Based)。 pu......

Java 高级教程系列 - Set 接口及其实现

Java Tutorial for Language Adavanced - Set Interface and Implements

Java 集合 Set 接口Java 集合框架存在Set接口,其模型正如数学上对集合的定义:由一个或多个确定不重复元素所构成的整体。 Java 集合容器不允许包含重复的元素,允许存在至多一个null元素,不保证集合内元素的排列顺序。 Java 集合容器以其内部存储对象的equals()方法判定两个元素是否相等。如果我们试图将重复元素加入到集合容器中,集合容器会静默忽略(Ignored Sil......

Java 高级教程系列 - Collection 接口与 Iterator 迭代器

Java Tutorial for Language Adavanced - Collection and Iterator

Java 集合 Collection 接口Java 接口java.util.Collection是 Java 集合框架的根接口,它是一枚泛型接口。 Collection接口定义了对序列数据类型的一系列基本操作。如: 获取集合容器内元素数量 添加新元素到集合容器内 移除集合容器内的元素 检查元素是否在集合容器内 检查集合容器是否为空 … 对Collection接口定义的方法作一......