常用代码段展示
页面中的代码主要用于整理日常开发中常见的写法、工具函数和练习示例,方便按主题快速查阅。
JavaScript / 格式化时间
function formatDate(date) {
const d = new Date(date);
const y = d.getFullYear();
const m = String(d.getMonth() + 1).padStart(2, "0");
const day = String(d.getDate()).padStart(2, "0");
return `${y}-${m}-${day}`;
}
Java / 列表转映射
public static Map<Long, User> toUserMap(List<User> users) {
return users.stream()
.collect(Collectors.toMap(
User::getId,
item -> item,
(left, right) -> left,
LinkedHashMap::new
));
}
Java / 简单结果封装
public class Result<T> {
private final boolean success;
private final String message;
private final T data;
private Result(boolean success, String message, T data) {
this.success = success;
this.message = message;
this.data = data;
}
public static <T> Result<T> ok(T data) {
return new Result<>(true, "success", data);
}
}
Java / Stream 分组统计
public Map<String, Long> countSuccessByType(List<OrderLog> logs) {
return logs.stream()
.filter(Objects::nonNull)
.filter(log -> log.getType() != null)
.collect(Collectors.groupingBy(
OrderLog::getType,
LinkedHashMap::new,
Collectors.filtering(
log -> Boolean.TRUE.equals(log.getSuccess()),
Collectors.counting()
)
));
}
Java / 异步批量查询
public CompletableFuture<Map<Long, UserProfile>> loadProfilesAsync(
List<Long> userIds, Executor executor) {
List<CompletableFuture<UserProfile>> tasks = userIds.stream()
.distinct()
.map(id -> CompletableFuture.supplyAsync(() -> profileService.load(id), executor))
.toList();
return CompletableFuture.allOf(tasks.toArray(CompletableFuture[]::new))
.thenApply(ignored -> tasks.stream()
.map(CompletableFuture::join)
.filter(Objects::nonNull)
.collect(Collectors.toMap(
UserProfile::getUserId,
profile -> profile,
(left, right) -> right
)));
}
JavaScript / 请求重试封装
async function requestWithRetry(requestFn, retries = 3, delay = 500) {
let lastError;
for (let index = 0; index < retries; index += 1) {
try {
return await requestFn();
} catch (error) {
lastError = error;
if (index === retries - 1) {
break;
}
await new Promise(resolve => setTimeout(resolve, delay * (index + 1)));
}
}
throw lastError;
}