Skip to content

Commit a9f381d

Browse files
committed
修改命名
1 parent 19361c1 commit a9f381d

File tree

208 files changed

+1355
-156
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

208 files changed

+1355
-156
lines changed

pom.xml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<maven.compiler.target>8</maven.compiler.target>
1414
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1515
<kotlin.version>1.9.23</kotlin.version>
16+
<hutool.version>5.8.25</hutool.version>
1617
</properties>
1718

1819
<dependencies>
@@ -53,6 +54,26 @@
5354
<version>1.18.32</version>
5455
<scope>provided</scope>
5556
</dependency>
57+
<dependency>
58+
<groupId>com.kuaike.common</groupId>
59+
<artifactId>common-utils</artifactId>
60+
<version>1.0.4-SNAPSHOT</version>
61+
</dependency>
62+
<dependency>
63+
<groupId>cn.hutool</groupId>
64+
<artifactId>hutool-core</artifactId>
65+
<version>${hutool.version}</version>
66+
</dependency>
67+
<dependency>
68+
<groupId>cn.hutool</groupId>
69+
<artifactId>hutool-http</artifactId>
70+
<version>${hutool.version}</version>
71+
</dependency>
72+
<dependency>
73+
<groupId>cn.hutool</groupId>
74+
<artifactId>hutool-cache</artifactId>
75+
<version>${hutool.version}</version>
76+
</dependency>
5677
</dependencies>
5778

5879
<build>

src/main/java/org/lwl/algorithms/leetcode/code/dp/Fibonacci.java

Lines changed: 54 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
package algorithms.leetcode.code.dp;
1+
package org.lwl.algorithms.leetcode.code.dp;
2+
3+
import java.util.HashMap;
4+
import java.util.Map;
25

36
/**
47
* @date: 2021/4/8
@@ -18,7 +21,10 @@ public class Fibonacci {
1821

1922
public static void main(String[] args) {
2023
Fibonacci fibonacci = new Fibonacci();
21-
System.out.println(fibonacci.fib(10));
24+
// System.out.println(fibonacci.fib(10));
25+
// System.out.println(fibonacci.numWays(10));
26+
System.out.println(fibonacci.fib2(2));
27+
// System.out.println(fibonacci.numWays1(2));
2228
}
2329

2430

@@ -29,29 +35,69 @@ public int fib(int n) {
2935

3036
/**
3137
* des: 带备忘录,时间复杂度从o(2n次幂) 到 o(n)
32-
* @param
3338
*/
3439
public int fibWithMemo(int[] memo, int n){
35-
if(n == 0 || n ==1 ) return n;
40+
if(n == 0 || n ==1 ){
41+
return 1;
42+
}
3643
//增加一个备忘录,防止重复计算;时间复杂度o(n);
37-
if(memo[n] != 0) return memo[n] % 1000000007;
44+
if(memo[n] != 0) {
45+
return memo[n] % 1000000007;
46+
}
3847
memo[n] = fibWithMemo(memo, n - 1) + fibWithMemo(memo, n - 2);
3948
return memo[n] % 1000000007;
4049
}
4150

4251

4352
/**
44-
* des: 自底向上,递归反向
45-
* @param
53+
* des: 自底向上,递归反向 动态规划,时间复杂度o(1)
4654
*/
4755
public int fib2(int n) {
4856
int a = 0, b = 1, sum;
49-
for(int i = 0; i < n; i++){
57+
for(int i = 0; i <= n; i++){
5058
sum = (a + b) % 1000000007;
5159
a = b;
5260
b = sum;
5361
}
5462
return a;
5563
}
5664

65+
66+
public int numWays1(int n) {
67+
if (n <= 1) {
68+
return 1;
69+
}
70+
if (n == 2) {
71+
return 2;
72+
}
73+
int a = 1;
74+
int b = 2;
75+
int temp = 0;
76+
for (int i = 3; i <= n; i++) {
77+
temp = (a + b)% 1000000007;
78+
a = b;
79+
b = temp;
80+
}
81+
return temp;
82+
}
83+
84+
85+
//使用哈希map,充当备忘录的作用
86+
Map<Integer, Integer> tempMap = new HashMap();
87+
public int numWays(int n) {
88+
// n = 0 也算1种
89+
if (n == 0 || n == 1) {
90+
return 1;
91+
}
92+
//先判断有没计算过,即看看备忘录有没有
93+
if (tempMap.containsKey(n)) {
94+
//备忘录有,即计算过,直接返回
95+
return tempMap.get(n);
96+
} else {
97+
int temp = (numWays(n - 1) + numWays(n - 2)) % 1000000007;
98+
// 备忘录没有,即没有计算过,执行递归计算,并且把结果保存到备忘录map中,对1000000007取余(这个是leetcode题目规定的)
99+
tempMap.put(n, temp);
100+
return temp;
101+
}
102+
}
57103
}
Lines changed: 6 additions & 0 deletions

src/main/java/org/lwl/design_patterns/chain_of_responsibility/ChainManagerClient.java renamed to src/main/java/org/lwl/designpatterns/chainofresponsibility/ChainManagerClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package design_patterns.chain_of_responsibility;
1+
package org.lwl.designpatterns.chainofresponsibility;
22

33
import java.util.ArrayList;
44

src/main/java/org/lwl/design_patterns/chain_of_responsibility/Client.java renamed to src/main/java/org/lwl/designpatterns/chainofresponsibility/Client.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package design_patterns.chain_of_responsibility;
1+
package org.lwl.designpatterns.chainofresponsibility;
22

33
/*实例场景
44
在公司内部员工请假一般情况是这样的:员工在OA系统中提交一封请假邮件,该邮件会自动转发到你的直接上级领导邮箱里,如果你的请假的情况特殊的话,

src/main/java/org/lwl/design_patterns/chain_of_responsibility/CustomInterceptor.java renamed to src/main/java/org/lwl/designpatterns/chainofresponsibility/CustomInterceptor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package design_patterns.chain_of_responsibility;
1+
package org.lwl.designpatterns.chainofresponsibility;
22

33
/**
44
* 类描述:自定义“责任人”

src/main/java/org/lwl/design_patterns/chain_of_responsibility/DepartmentHeader.java renamed to src/main/java/org/lwl/designpatterns/chainofresponsibility/DepartmentHeader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package design_patterns.chain_of_responsibility;
1+
package org.lwl.designpatterns.chainofresponsibility;
22

33

44
/**

src/main/java/org/lwl/design_patterns/chain_of_responsibility/GroupLeader.java renamed to src/main/java/org/lwl/designpatterns/chainofresponsibility/GroupLeader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package design_patterns.chain_of_responsibility;
1+
package org.lwl.designpatterns.chainofresponsibility;
22

33
/**
44
* 组长

src/main/java/org/lwl/design_patterns/chain_of_responsibility/Manager.java renamed to src/main/java/org/lwl/designpatterns/chainofresponsibility/Manager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package design_patterns.chain_of_responsibility;
1+
package org.lwl.designpatterns.chainofresponsibility;
22

33

44

src/main/java/org/lwl/design_patterns/chain_of_responsibility/Ratify.java renamed to src/main/java/org/lwl/designpatterns/chainofresponsibility/Ratify.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package design_patterns.chain_of_responsibility;
1+
package org.lwl.designpatterns.chainofresponsibility;
22

33

44
public interface Ratify {

src/main/java/org/lwl/design_patterns/chain_of_responsibility/RealChain.java renamed to src/main/java/org/lwl/designpatterns/chainofresponsibility/RealChain.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package design_patterns.chain_of_responsibility;
1+
package org.lwl.designpatterns.chainofresponsibility;
22

33
import java.util.List;
44

src/main/java/org/lwl/design_patterns/chain_of_responsibility/Request.java renamed to src/main/java/org/lwl/designpatterns/chainofresponsibility/Request.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package design_patterns.chain_of_responsibility;
1+
package org.lwl.designpatterns.chainofresponsibility;
22

33
//建造者模式构建请假请求
44
public class Request {

src/main/java/org/lwl/design_patterns/chain_of_responsibility/Result.java renamed to src/main/java/org/lwl/designpatterns/chainofresponsibility/Result.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package design_patterns.chain_of_responsibility;
1+
package org.lwl.designpatterns.chainofresponsibility;
22

33
/**
44
* 类描述:结果对象

src/main/java/org/lwl/design_patterns/observer/Client.java renamed to src/main/java/org/lwl/designpatterns/observer/Client.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package design_patterns.observer;
1+
package org.lwl.designpatterns.observer;
22

33
/**
44
* @program: javaProjects
@@ -11,7 +11,7 @@ public class Client {
1111

1212
public static void main(String[] args) {
1313
Subject concreteSubject = new ConcreteSubject();
14-
Observer concreteObserver = new ConcreteObserver();
14+
Observer concreteObserver = new org.lwl.designpatterns.observer.ConcreteObserver();
1515

1616
concreteSubject.attach(concreteObserver);
1717
concreteSubject.notifyObservers("new message llll");

src/main/java/org/lwl/design_patterns/observer/ConcreteObserver.java renamed to src/main/java/org/lwl/designpatterns/observer/ConcreteObserver.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package design_patterns.observer;
1+
package org.lwl.designpatterns.observer;
22

33
/**
44
* @program: javaProjects

src/main/java/org/lwl/design_patterns/observer/ConcreteSubject.java renamed to src/main/java/org/lwl/designpatterns/observer/ConcreteSubject.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package design_patterns.observer;
1+
package org.lwl.designpatterns.observer;
22

33
import java.util.ArrayList;
44
import java.util.List;
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
package design_patterns.observer;
2-
1+
package org.lwl.designpatterns.observer;
32
public interface Observer {
43
void doThing(String message);
54
}

src/main/java/org/lwl/design_patterns/observer/Subject.java renamed to src/main/java/org/lwl/designpatterns/observer/Subject.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package design_patterns.observer;
1+
package org.lwl.designpatterns.observer;
22

33
/**
44
* @program: javaProjects
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package org.lwl.javacommon.collections;
2+
3+
import com.google.common.collect.Sets;
4+
5+
import java.util.HashSet;
6+
import java.util.Iterator;
7+
import java.util.Set;
8+
9+
public class ConcurrentHashSet {
10+
11+
private Set<Long> manageBizIds = Sets.newHashSet(1L,2L,3L);
12+
public static void main(String[] args) {
13+
ConcurrentHashSet concurrentHashSet = new ConcurrentHashSet();
14+
15+
for (long j = 0; j < 10; j++) {
16+
final long j1 = j;
17+
new Thread(new Runnable() {
18+
@Override
19+
public void run() {
20+
try {
21+
Thread.sleep(500);
22+
} catch (InterruptedException e) {
23+
throw new RuntimeException(e);
24+
}
25+
System.out.println("线程:" + Thread.currentThread().getName() + ", j1 = " + j1);
26+
concurrentHashSet.test3(1L);
27+
}
28+
}).start();
29+
}
30+
}
31+
32+
private void test2(Long bizId){
33+
manageBizIds.remove(bizId); // 在迭代之前先移除一个元素
34+
35+
Iterator<Long> iterator = manageBizIds.iterator();
36+
while (iterator.hasNext()) {
37+
Long manageBizId = iterator.next();
38+
System.out.println("Processing: " + manageBizId);
39+
iterator.remove(); // 使用 Iterator.remove() 安全地移除元素
40+
}
41+
}
42+
43+
private void test3(Long bizId) {
44+
manageBizIds.remove(bizId); // 在迭代之前先移除一个元素
45+
46+
Set<Long> newManageBizIds = new HashSet<>(manageBizIds);
47+
for (Long manageBizId : newManageBizIds) {
48+
System.out.println("Processing: " + manageBizId);
49+
manageBizIds.remove(manageBizId); // 在新集合上迭代,原集合上移除元素
50+
}
51+
}
52+
53+
}

src/main/java/org/lwl/java_common/threads/CallableTest.java renamed to src/main/java/org/lwl/javacommon/threads/CallableTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package java_common.threads;
1+
package org.lwl.javacommon.threads;
22

33
import java.util.concurrent.Callable;
44
import java.util.concurrent.FutureTask;

src/main/java/org/lwl/java_common/threads/CompletedFuture.java renamed to src/main/java/org/lwl/javacommon/threads/CompletedFuture.java

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package java_common.threads;
1+
package org.lwl.javacommon.threads;
22

33
import com.google.common.collect.Lists;
44

@@ -31,7 +31,9 @@ public static void main(String[] args) throws Exception {
3131
// test1(false);
3232
// test2();
3333

34-
test222();
34+
// test222();
35+
// test3();
36+
test4();
3537
}
3638

3739
private static int count = 0;
@@ -127,6 +129,50 @@ private static void test2(){
127129
}).join();
128130
}
129131

132+
private static void test3(){
133+
long start = System.currentTimeMillis();
134+
List<CompletableFuture<String>> targetList = new ArrayList<>();
135+
for (int i = 0; i < 10; i++) {
136+
final int i1 = i;
137+
CompletableFuture<String> completableFuture = CompletableFuture.supplyAsync(()->{
138+
try {
139+
Thread.sleep(10);
140+
} catch (InterruptedException e) {
141+
e.printStackTrace();
142+
}
143+
System.out.println("i1 = " + i1);
144+
return String.valueOf(i1);
145+
}, commonExecutor);
146+
targetList.add(completableFuture);
147+
}
148+
CompletableFuture.allOf(targetList.toArray(new CompletableFuture[0])).whenComplete((r, t) -> {
149+
if (t != null) {
150+
System.out.println("e = " + t);
151+
}
152+
}).join();
153+
154+
targetList.forEach(t -> {
155+
System.out.println("t = " + t.toString());
156+
});
157+
System.out.println("耗时 time = " + (System.currentTimeMillis() - start));
158+
}
159+
private static void test4(){
160+
long start = System.currentTimeMillis();
161+
List<String> targetList = new ArrayList<>();
162+
for (int i = 0; i < 10; i++) {
163+
try {
164+
Thread.sleep(10);
165+
} catch (InterruptedException e) {
166+
e.printStackTrace();
167+
}
168+
targetList.add(String.valueOf(i));
169+
}
170+
targetList.forEach(t -> {
171+
System.out.println("t = " + t);
172+
});
173+
System.out.println("耗时 time = " + (System.currentTimeMillis() - start));
174+
}
175+
130176
private static void doSomethingForValue(List<Integer> list){
131177
System.out.println("逻辑处理");
132178
list.forEach(t -> {

src/main/java/org/lwl/java_common/threads/DeadLockTest.java renamed to src/main/java/org/lwl/javacommon/threads/DeadLockTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
package java_common.threads;
1+
package org.lwl.javacommon.threads;
22

33
import java.io.File;
44
import java.io.FileOutputStream;
55
import java.io.IOException;
6-
import java.io.ObjectOutputStream;
76

87
public class DeadLockTest {
98

src/main/java/org/lwl/java_common/threads/ExecutorTest.java renamed to src/main/java/org/lwl/javacommon/threads/ExecutorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package java_common.threads;
1+
package org.lwl.javacommon.threads;
22

33
import com.google.common.collect.Lists;
44
import com.google.common.collect.Maps;

0 commit comments

Comments
 (0)