diff --git a/data.js b/data.js index 2036ce4c..699da2b8 100644 --- a/data.js +++ b/data.js @@ -1 +1 @@ -const REFS_DATA = [{"title":"

删除所有节点

-
MATCH (n) DETACH DELETE n
+
MATCH (n) DETACH DELETE n
 
-

删除‘Person’中‘name‘为’Mike‘节点的’test‘属性

-
MATCH (a:Person {name:'Mike'}) SET a.test='test'
-MATCH (a:Person {name:'Mike'}) REMOVE a.test
+

删除 PersonnameMike节点的 test属性

+
MATCH (a:Person {name:'Mike'}) SET a.test='test'
+MATCH (a:Person {name:'Mike'}) REMOVE a.test
 
-

删除’Location‘中’city‘为’Portland‘的节点

-
MATCH (a:Location {city:'Portland'}) DELETE a
+

删除 LocationcityPortland 的节点

+
MATCH (a:Location {city:'Portland'}) DELETE a
 

删除有关系的节点(此处rel是写死的,指的是所有关系)

-
MATCH (a:Person {name:'Todd'})-[rel]-(b:Person) DELETE a,b,rel
+
MATCH (a:Person {name:'Todd'})-[rel]-(b:Person) DELETE a,b,rel
 
-

查询

-

查询所有在Boston出生的人物

-
MATCH (a:Person)-[:BORN_IN]->(b:Location {city:'Boston'}) RETURN a,b
+

查询

+ +

查询所有在 Boston 出生的人物

+
MATCH (a:Person)-[:BORN_IN]->(b:Location {city:'Boston'}) RETURN a,b
 

查询所有对外有关系的节点

-
MATCH (a)-->() RETURN a
+
MATCH (a)-->() RETURN a
 

查询所有有关系的节点

-
MATCH (a)--() RETURN a
+
MATCH (a)--() RETURN a
 

查询所有对外有关系的节点,以及关系类型

-
MATCH (a)-[r]->() RETURN a.name, type(r)
+
MATCH (a)-[r]->() RETURN a.name, type(r)
 

查询所有有结婚关系的节点

-
MATCH (n)-[:MARRIED]-() RETURN n
+
MATCH (n)-[:MARRIED]-() RETURN n
 

查找某人的朋友的朋友

-
MATCH (a:Person {name:'Mike'})-[r1:FRIENDS]-()-[r2:FRIENDS]-(friend_of_a_friend) RETURN friend_of_a_friend.name AS fofName
+
MATCH (a:Person {name:'Mike'})-[r1:FRIENDS]-()-[r2:FRIENDS]-(friend_of_a_friend) RETURN friend_of_a_friend.name AS fofName
+
+

创建节点和关系

+ +
// 创建节点
+CREATE (n:Person {name: 'Alice', age: 30})
+CREATE (n:Person {name: 'Bob', age: 25})
+
+// 创建关系
+MATCH (alice:Person {name: 'Alice'}), (bob:Person {name: 'Bob'})
+CREATE (alice)-[:FRIENDS]->(bob)
 

增加/修改节点的属性

-
MATCH (a:Person {name:'Liz'}) SET a.age=34
-MATCH (a:Person {name:'Shawn'}) SET a.age=32
-MATCH (a:Person {name:'John'}) SET a.age=44
-MATCH (a:Person {name:'Mike'}) SET a.age=25
+
MATCH (a:Person {name:'Liz'}) SET a.age=34
+MATCH (a:Person {name:'Shaw'}) SET a.age=32
+MATCH (a:Person {name:'John'}) SET a.age=44
+MATCH (a:Person {name:'Mike'}) SET a.age=25
+
+

查询节点和关系

+ +
// 查询所有节点和关系
+MATCH (n)
+RETURN n
+
+// 查询特定节点
+MATCH (n:Person)
+WHERE n.name = 'Alice'
+RETURN n
+
+// 查询节点的关系
+MATCH (n:Person)-[r]->()
+WHERE n.name = 'Alice'
+RETURN r
+
+

更新节点和关系

+
// 更新节点属性
+MATCH (n:Person {name: 'Alice'})
+SET n.age = 31
+RETURN n
+
+// 删除节点
+MATCH (n:Person {name: 'Bob'})
+DELETE n
+
+

更复杂的查询

+ +
// 查找 Alice 的朋友的朋友
+MATCH (alice:Person {name: 'Alice'})-[:FRIENDS]->()-[:FRIENDS]->(fof)
+RETURN fof
+
+// 查找共同朋友
+MATCH (alice:Person {name: 'Alice'})-[:FRIENDS]->(friend),
+      (bob:Person {name: 'Bob'})-[:FRIENDS]->(friend)
+RETURN friend
 
diff --git a/docs/java.html b/docs/java.html index 9b0b7869..8d16ab33 100644 --- a/docs/java.html +++ b/docs/java.html @@ -33,7 +33,7 @@

该备忘单是针对 Java 初学者的速成课程,有助于复习 Java 语言的基本语法。

入门

Hello.java

public class Hello {
@@ -1268,6 +1268,66 @@
 
// 获取注解信息
 Annotation annotation = field.getAnnotation(MyAnnotation.class);
 
+

方法引用

+

方法引用

+ +

Java 的 Consumer 接口里的 accept 方法接受参数但不返回值。要让它打印传入的参数,可以这样做:

+
Consumer<String> test = new Consumer<String>() {
+    @Override
+    public void accept(String s) {
+      System.out.println(s);
+    }
+  };
+test.accept("test");
+
+

更简单的,我们可以直接传入Lambda表达式

+
Consumer<String> test = System.out::println;
+
+

方法引用通过方法的名字指向一个方法,使语言构造更简洁,减少冗余代码。

+

使用方式

+
    +
  • 引用方法
  • +
  • 引用构造方法
  • +
  • 引用数组
  • +
+

静态方法引用

+
Comparator<Integer> comparator = Math::max;
+
+int result = comparator.compare(1, 2); 
+// 返回 2
+
+

实例方法引用

+
String str = "HELLO";
+
+String lowerCase = str::toLowerCase; 
+// 返回 "hello"
+
+

构造方法引用

+
Supplier<String> supplier = String::new;
+
+String str = supplier.get(); 
+// 返回一个空字符串
+
+

数组构造方法引用

+
Function<Integer, String[]> function = String[]::new;
+
+
+String[] array = function.apply(5); 
+// 返回 5 个空字符串的数组
+
+ +

对象中的方法引用

+
String someStr = "HELLO";
+
+String lowerCase = someStr::toLowerCase; 
+// 返回 "hello"
+
+

对象中的静态方法引用

+
SomeClass someObject = new SomeClass();
+
+int result = someObject::staticMethod; 
+// 调用静态方法
+

杂项 Misc

访问修饰符

@@ -1494,58 +1554,6 @@ int frequency = Collections .frequency(list, 2); // frequency = 2
-

方法引用

- -

有一种函数式接口叫做Consumer,里面有个抽象方法accept能够接受一个参数但是没有返回值,加入我想实现这个方法,让他打印我传入的参数,那么我可以这样:

-
Consumer<String> test = new Consumer<String>() {
-    @Override
-    public void accept(String s) {
-      System.out.println(s);
-    }
-  };
-test.accept("test");
-
-

更简单的,我们可以直接传入Lambda表达式

-
Consumer<String> test = System.out::println;
-
-

这就是方法引用,方法引用通过方法的名字来指向一个方法,让语言的构造更紧凑简洁,减少冗余代码。

-

使用方式

-
    -
  • 引用方法
  • -
  • 引用构造方法
  • -
  • 引用数组
  • -
-

引用方式

-
    -
  • 实例对象::实例方法名
  • -
-
Consumer<String> myConsumer = System.out::println;
-myConsumer.accept("test");
-
-
    -
  • 类名::静态方法名
  • -
-
Function<Long, Long> myFunction = Math::abs(x);
-Long result = myFunction.apply("-2L");
-
-
    -
  • 类名::实例方法名
  • -
-
BiPredicate<String, String> myBiPredicate = String::equals;
-System.out.println(myBiPredicate.test("test", "test"));
-
-
    -
  • 引用构造器
  • -
-
Function<Integer, String> myFunction = StringBuffer::new;
-StringBuffer sb = myFunction.apply(10);
-
-
    -
  • 引用数组
  • -
-
Function<Integer, int[]> myFunction = int[]::new;
-int []arr = myFunction.apply(123);
-

另见

  • Java 官网 (oracle.com/cn/java)
  • diff --git a/docs/neo4j.html b/docs/neo4j.html new file mode 100644 index 00000000..ac28228e --- /dev/null +++ b/docs/neo4j.html @@ -0,0 +1,156 @@ + + + + +Neo4j 备忘清单 + & neo4j cheatsheet & Quick Reference + + + + + + + +

    Neo4jNeo4j 备忘清单

    +

    这个 neo4j 快速参考备忘单显示了它的常用命令

    +

    入门

    +

    Neo4J 安装

    +

    当开始使用 Neo4j 时,首先需要从官网下载页面下载 Neo4j。Neo4j 分为社区版和企业版。尽管企业版在横向扩展、权限控制、运行性能和高可用性等方面更优秀,适合正式的生产环境,但对于普通的学习和开发,免费的社区版就足够了。

    +

    运行

    +
    $ bin/neo4j start
    +
    +

    在 Mac 或者 Linux 中,安装好 JDK 后,直接解压下载好的 Neo4j 包,然后运行上面命令即可。

    +

    Neo4J 使用

    +

    Neo4J 提供了一个用户友好的 web 界面,可以进行各项配置、写入、查询等操作,并且提供了可视化功能。类似ElasticSearch 一样,我个人非常喜欢这种开箱即用的设计。

    +

    进入管理页面

    +

    打开浏览器,输入下面网址,可以进入管理页面

    +
    http://127.0.0.1:7474/browser/
    +
    +

    Neo4j 示例

    +

    创建

    +

    创建多个节点

    +
    CREATE (n:Person {name:'Sally'}) RETURN n;
    +CREATE (n:Person {name:'Steve'}) RETURN n;
    +
    +

    创建 FRIENDS 关系

    +
    MATCH (a:Person {name:'Sally'}), 
    +      (b:Person {name:'Steve'}) 
    +MERGE (a)-[:FRIENDS]->(b)
    +
    +

    创建节点的时候就建好 FRIENDS 关系

    +
    CREATE (a:Person {name:'Todd'})-[r:FRIENDS]->(b:Person {name:'Carlos'})
    +
    +

    为创建完成的关系增加 since 属性

    +
    MATCH (a:Person {name:'Sally'}), 
    +      (b:Person {name:'Steve'}) 
    +MERGE (a)-[:FRIENDS {since:2001}]->(b)
    +
    +

    删除

    + +

    删除所有节点

    +
    MATCH (n) DETACH DELETE n
    +
    +

    删除 PersonnameMike节点的 test属性

    +
    MATCH (a:Person {name:'Mike'}) SET a.test='test'
    +MATCH (a:Person {name:'Mike'}) REMOVE a.test
    +
    +

    删除 LocationcityPortland 的节点

    +
    MATCH (a:Location {city:'Portland'}) DELETE a
    +
    +

    删除有关系的节点(此处rel是写死的,指的是所有关系)

    +
    MATCH (a:Person {name:'Todd'})-[rel]-(b:Person) DELETE a,b,rel
    +
    +

    查询

    + +

    查询所有在 Boston 出生的人物

    +
    MATCH (a:Person)-[:BORN_IN]->(b:Location {city:'Boston'}) RETURN a,b
    +
    +

    查询所有对外有关系的节点

    +
    MATCH (a)-->() RETURN a
    +
    +

    查询所有有关系的节点

    +
    MATCH (a)--() RETURN a
    +
    +

    查询所有对外有关系的节点,以及关系类型

    +
    MATCH (a)-[r]->() RETURN a.name, type(r)
    +
    +

    查询所有有结婚关系的节点

    +
    MATCH (n)-[:MARRIED]-() RETURN n
    +
    +

    查找某人的朋友的朋友

    +
    MATCH (a:Person {name:'Mike'})-[r1:FRIENDS]-()-[r2:FRIENDS]-(friend_of_a_friend) RETURN friend_of_a_friend.name AS fofName
    +
    +

    创建节点和关系

    + +
    // 创建节点
    +CREATE (n:Person {name: 'Alice', age: 30})
    +CREATE (n:Person {name: 'Bob', age: 25})
    +
    +// 创建关系
    +MATCH (alice:Person {name: 'Alice'}), (bob:Person {name: 'Bob'})
    +CREATE (alice)-[:FRIENDS]->(bob)
    +
    +

    增加/修改节点的属性

    +
    MATCH (a:Person {name:'Liz'}) SET a.age=34
    +MATCH (a:Person {name:'Shaw'}) SET a.age=32
    +MATCH (a:Person {name:'John'}) SET a.age=44
    +MATCH (a:Person {name:'Mike'}) SET a.age=25
    +
    +

    查询节点和关系

    + +
    // 查询所有节点和关系
    +MATCH (n)
    +RETURN n
    +
    +// 查询特定节点
    +MATCH (n:Person)
    +WHERE n.name = 'Alice'
    +RETURN n
    +
    +// 查询节点的关系
    +MATCH (n:Person)-[r]->()
    +WHERE n.name = 'Alice'
    +RETURN r
    +
    +

    更新节点和关系

    +
    // 更新节点属性
    +MATCH (n:Person {name: 'Alice'})
    +SET n.age = 31
    +RETURN n
    +
    +// 删除节点
    +MATCH (n:Person {name: 'Bob'})
    +DELETE n
    +
    +

    更复杂的查询

    + +
    // 查找 Alice 的朋友的朋友
    +MATCH (alice:Person {name: 'Alice'})-[:FRIENDS]->()-[:FRIENDS]->(fof)
    +RETURN fof
    +
    +// 查找共同朋友
    +MATCH (alice:Person {name: 'Alice'})-[:FRIENDS]->(friend),
    +      (bob:Person {name: 'Bob'})-[:FRIENDS]->(friend)
    +RETURN friend
    +
    +
    + +
    + diff --git a/index.html b/index.html index 08650cc5..32dd7323 100644 --- a/index.html +++ b/index.html @@ -715,7 +715,7 @@ Elasticsearch
    -Neo4jNeo4j

    +Neo4jNeo4j

快捷键

@@ -893,6 +893,7 @@ expoli baoer LufsX +LesterChang0987 秋 雨落 Darkiiiiiice Blossom @@ -902,7 +903,6 @@ YuRuiH Willxup Yuan Liu -LesterChang0987 Lve Lvee Kim同学 魏 @@ -911,16 +911,17 @@ ryanhex53 partoneplay pangxiaoli -mancuoj -kjch -greyhao -findnr -XYZ -SuperDiscovery -Jovins -Jack Liu -Albert Da Da +Albert +Jack Liu +Jason Zhuang +Jovins +SuperDiscovery +XYZ +findnr +greyhao +kjch +mancuoj Xudong Guo gzttcydxx hua03 @@ -932,7 +933,7 @@ joyfully-W jussker k983551019 -都一样 +kdxcxs gowshwah godot42 Gavin @@ -946,7 +947,7 @@ _lmmmmmm Zyj ZinkCas -zhucong +都一样 Zheng Nai Bin 行者 花开花落 @@ -971,13 +972,12 @@ liliangrong777 larry kubernetes for me -kdxcxs +Mao Wang likeshop技术社区 Lihuagreek Light_Quanta JetSquirrel JavaZero -Jason Zhuang HooinKyoma GONGYE Heyu Fuku-L @@ -997,6 +997,7 @@ Aze dousha0w0 花殇 +zhucong yikuaibro Zech Yogurt @@ -1020,8 +1021,7 @@ Monet Lee Moeyuuko Minghao Yu -Mariusz Michalowski -Mao Wang

+Mariusz Michalowski

贡献者列表,由 contributors 根据提交次数的先后顺序自动生成

国内镜像网站

@@ -1390,7 +1390,7 @@

如果你有资源,可以很方便部署 web 版,这非常简单,只需要克隆 gh-pages 分支代码到你的静态服务就可以了,还可以使用 docker 快捷部署 web 版。

-
© 2022 Kenny Wang. Updated on 2024/05/05 16:47:18
+
© 2022 Kenny Wang. Updated on 2024/05/05 17:33:58