我个人目前比较熟悉的是JavaScript。因此,这个系列计划通过对比学习的方式,将JavaScript中自己比较熟悉的部分,迁移到Java中实现,并顺带记录和学习Java中的实现方式。
写一个函数,函数名为mapReplace
,函数的参数1是一个字符串,其中包含不定数量的数字,参数2是一个函数。该函数的功能是:将参数1的字符串中的数字全部用参数2作同一个算术处理,并将结果替换到字符串原来的位置上。
在编程提高群的本周作业中,有一项是”自己实现一个二叉树(BinaryTree)“。老师简单的讲解了二叉树大概是什么,并针对这个作业将模板代码写给了我们,让我们自己去实现。虽然完成了,但自己觉得很多地方还是没有很好理解。
于是后面去 https://www.youtube.com/watch?v=M6lYob8STMI 找到了一个老外的不错的视频,内容是关于二叉树的概念以及用Java实现二叉树的节点(Node),以及节点的增加和查找。
可以科学上网,以及英文无压力的同学建议看一下。该视频还有Part2,讲解比较复杂的如何删除一个二叉树中的节点。
以下是我对这个视频中内容的整理:
许久不写JS了,今天来留一段自己写得非常精炼的代码。Node.js,后端的。
功能为静态文件服务器,具体指的是:
小白初学Java的多线程编程,一下子遇到了海量的新知识点。一方面,Java中要想灵活使用多线程编程,需要了解concurrecy, Thread 等包和类中的很多实现的类的使用方法;另一方面,自己之前学习的比较多的JS是一个单线程的世界,很多多线程背后的原理我是不能理解的。所以这次的文章,用翻译的形式来细读一些基础的Java多线程编程的教程,顺便分享给大家,希望对各位能有帮助。
以下内容翻译自Thread Interference (The Java™ Tutorials > Essential Classes > Concurrency)
假设有一个简单的类叫做Counter
class Heap { | |
constructor() { | |
/* A heap is a tree-based data structure with the following features | |
- Child nodes for a node in the heap is always greater(or smaller) than | |
the parent node(which can be categorized as min-heap or nax-heap) | |
- A heap is a complete tree. Because of this feature, we can keep records | |
of a heap by array and refer to all nodes by index manipulation | |
- For example, in the case of a binary heap where a node has an index of | |
i, then its children indexes should be ((i + 1) << 1) - 1 and | |
(i + 1) << 1 |
/* | |
用JavaScript实现字典树(Trie)。 | |
该数据结构是由节点组成的树,每个节点的数据是一个单字 | |
每个节点拥有N个字节点,为一对多的关系 | |
*/ | |
// 字符节点类 | |
class Node{ |
// unweighted undirectional graph implementation | |
// TODO directional and weighted graph implementation; travelling salesman's problem | |
class Graph { | |
constructor() { | |
this.vertices = []; | |
this.edges = []; | |
} | |
add(){ |