Skip to content

Commit 42c006a

Browse files
committed
feat: 重构目录
1 parent f8dda1b commit 42c006a

18 files changed

Lines changed: 372 additions & 4 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
- [Java 日期时间 Date](https://www.wdbyte.com/java/date/)
5252
- [Java 异常处理](https://www.wdbyte.com/java/exception/)
5353
- [Java 枚举](https://www.wdbyte.com/java/enum/)
54+
- [Java 注释](https://www.wdbyte.com/java/comment/)
5455
- [Java 集合框架](https://www.wdbyte.com/java/collection/)
5556

5657
## Java 进阶
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
target/
2+
!.mvn/wrapper/maven-wrapper.jar
3+
!**/src/main/**/target/
4+
!**/src/test/**/target/
5+
6+
### IntelliJ IDEA ###
7+
.idea/modules.xml
8+
.idea/jarRepositories.xml
9+
.idea/compiler.xml
10+
.idea/libraries/
11+
*.iws
12+
*.iml
13+
*.ipr
14+
15+
### Eclipse ###
16+
.apt_generated
17+
.classpath
18+
.factorypath
19+
.project
20+
.settings
21+
.springBeans
22+
.sts4-cache
23+
24+
### NetBeans ###
25+
/nbproject/private/
26+
/nbbuild/
27+
/dist/
28+
/nbdist/
29+
/.nb-gradle/
30+
build/
31+
!**/src/main/**/build/
32+
!**/src/test/**/build/
33+
34+
### VS Code ###
35+
.vscode/
36+
37+
### Mac OS ###
38+
.DS_Store
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<parent>
6+
<artifactId>core-java-modules</artifactId>
7+
<groupId>com.wdbyte.core-java-modules</groupId>
8+
<version>1.0.0-SNAPSHOT</version>
9+
</parent>
10+
<modelVersion>4.0.0</modelVersion>
11+
12+
<groupId>com.wdbyte.jdk20</groupId>
13+
<artifactId>core-java-20</artifactId>
14+
15+
<properties>
16+
<maven.compiler.source>20</maven.compiler.source>
17+
<maven.compiler.target>20</maven.compiler.target>
18+
</properties>
19+
20+
</project>
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import java.util.ArrayDeque;
2+
import java.util.ArrayList;
3+
import java.util.Deque;
4+
import java.util.LinkedHashMap;
5+
import java.util.LinkedHashSet;
6+
import java.util.List;
7+
import java.util.TreeSet;
8+
9+
/**
10+
* JDK 21 之前,顺序集合中操作体验不一致
11+
* @author niulang
12+
* @date 2023/10/12ø
13+
*/
14+
public class JEP431Test {
15+
public static void main(String[] args) {
16+
// JDK 21 之前,顺序集合中操作体验不一致
17+
List<Integer> listTemp = List.of(1, 2, 3, 4, 5);
18+
19+
ArrayList<Integer> list = new ArrayList(listTemp);
20+
Deque<Integer> deque = new ArrayDeque<>(listTemp);
21+
LinkedHashSet<Integer> linkedHashSet = new LinkedHashSet<>(listTemp);
22+
TreeSet<Integer> sortedSet = new TreeSet<>(listTemp);
23+
LinkedHashMap<Integer, Integer> linkedHashMap = new LinkedHashMap<>();
24+
for (int i = 1; i <= 5; i++) {
25+
linkedHashMap.put(i, i);
26+
}
27+
28+
// 输出第一个元素
29+
System.out.println(list.get(0));
30+
System.out.println(deque.getFirst());
31+
System.out.println(linkedHashSet.iterator().next());
32+
System.out.println(sortedSet.first());
33+
//System.out.println(linkedHashMap.firstEntry());没办法
34+
System.out.println("-----------------------");
35+
36+
// 输出最后一个元素
37+
System.out.println(list.get(list.size()-1));
38+
System.out.println(deque.getLast());
39+
//System.out.println(linkedHashSet()); 没办法,只能遍历
40+
System.out.println(sortedSet.last());
41+
//System.out.println(linkedHashMap); 没办法
42+
System.out.println("-----------------------");
43+
44+
// 逆序遍历
45+
for (var it = list.listIterator(list.size()); it.hasPrevious();) {
46+
var e = it.previous();
47+
System.out.print(e);
48+
}
49+
System.out.println();
50+
for (var it = deque.descendingIterator(); it.hasNext();) {
51+
var e = it.next();
52+
System.out.print(e);
53+
}
54+
System.out.println();
55+
for (Integer i : sortedSet.descendingSet()) {
56+
System.out.print(i);
57+
}
58+
System.out.println();
59+
60+
// sortedSet linkedHashMap 逆序输出很难操作
61+
62+
}
63+
}

core-java-modules/core-java-20/src/JEP433SwitchTest.java renamed to core-java-modules/core-java-20/src/main/java/JEP433SwitchTest.java

File renamed without changes.

core-java-modules/core-java-20/src/Jep429ScopedValueTest.java renamed to core-java-modules/core-java-20/src/main/java/Jep429ScopedValueTest.java

File renamed without changes.

core-java-modules/core-java-20/src/Jep432RecordAndInstance.java renamed to core-java-modules/core-java-20/src/main/java/Jep432RecordAndInstance.java

File renamed without changes.

core-java-modules/core-java-20/src/RecordTest.java renamed to core-java-modules/core-java-20/src/main/java/RecordTest.java

File renamed without changes.
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
package com.wdbyte.io.image;
2+
3+
import java.awt.*;
4+
import java.awt.image.BufferedImage;
5+
import java.io.File;
6+
import java.io.IOException;
7+
8+
import javax.imageio.ImageIO;
9+
10+
/**
11+
* <p>
12+
* 根据图片生成字符图案
13+
* 1.图片大小缩放
14+
* 2.遍历图片像素点
15+
* 3.获取图片像素点亮度
16+
* 4.匹配字符
17+
* 5.输出图案
18+
*
19+
* @website https://www.wdbyte.com
20+
*/
21+
public class GeneratorTextImageMini {
22+
23+
public static void main(String[] args) throws Exception {
24+
//BufferedImage image = resizeImage("/Users/darcy/Downloads/sanli.jpg", 120);
25+
BufferedImage image = ImageIO.read(new File("/Users/darcy/Downloads/刘看山.jpg"));
26+
printImage(image);
27+
}
28+
29+
/**
30+
* 图片缩放
31+
*
32+
* @param srcImagePath 图片路径
33+
* @param targetWidth 目标宽度
34+
* @return
35+
* @throws IOException
36+
*/
37+
public static BufferedImage resizeImage(String srcImagePath, int targetWidth) throws IOException {
38+
Image srcImage = ImageIO.read(new File(srcImagePath));
39+
int targetHeight = getTargetHeight(targetWidth, srcImage);
40+
BufferedImage resizedImage = new BufferedImage(targetWidth, targetHeight, BufferedImage.TYPE_INT_RGB);
41+
Graphics2D graphics2D = resizedImage.createGraphics();
42+
graphics2D.drawImage(srcImage, 0, 0, targetWidth, targetHeight, null);
43+
graphics2D.dispose();
44+
return resizedImage;
45+
}
46+
47+
/**
48+
* 根据指定宽度,计算等比例高度
49+
*
50+
* @param targetWidth 目标宽度
51+
* @param srcImage 图片信息
52+
* @return
53+
*/
54+
private static int getTargetHeight(int targetWidth, Image srcImage) {
55+
int targetHeight = srcImage.getHeight(null);
56+
if (targetWidth < srcImage.getWidth(null)) {
57+
targetHeight = Math.round((float)targetHeight / ((float)srcImage.getWidth(null) / (float)targetWidth));
58+
}
59+
return targetHeight;
60+
}
61+
62+
/**
63+
* 图片打印
64+
*
65+
* @param image
66+
* @throws IOException
67+
*/
68+
public static void printImage(BufferedImage image) throws IOException {
69+
final char[] PIXEL_CHAR_ARRAY = {'W', '@', '#', '8', '&', '*', 'o', ':', '.', ' '};
70+
//final char[] PIXEL_CHAR_ARRAY = {',', '.', ' '};
71+
int width = image.getWidth();
72+
int height = image.getHeight();
73+
for (int i = 0; i < height; i++) {
74+
for (int j = 0; j < width; j++) {
75+
int rgb = image.getRGB(j, i);
76+
Color color = new Color(rgb);
77+
int red = color.getRed();
78+
int green = color.getGreen();
79+
int blue = color.getBlue();
80+
// 一个用于计算RGB像素点灰度的公式
81+
Double grayscale = 0.2126 * red + 0.7152 * green + 0.0722 * blue;
82+
double index = grayscale / (Math.ceil(255 / PIXEL_CHAR_ARRAY.length) + 0.5);
83+
System.out.print(PIXEL_CHAR_ARRAY[(int)(Math.floor(index))]);
84+
}
85+
System.out.println();
86+
}
87+
}
88+
89+
}
22.4 KB
Loading

0 commit comments

Comments
 (0)