作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 java spring boot 中从后端验证 1 个表单。当表单的ListUser重复时,它会发送错误消息并且不会重新加载页面。我有一个类(class)请求
public class StoreInformationRequest {
private Boolean isReceiveReport;
private List<String> ipAddress;
private List<Integer> listUser;
public StoreInformationRequest(Boolean isReceiveReport, List<String> ipAddress, List<Integer> listUser) {
this.isReceiveReport = isReceiveReport;
this.ipAddress = ipAddress;
this.listUser = listUser;
}
}
和 Controller :
public String updateStore(@PathVariable("storeCode") String storeCode, @Valid StoreInformationRequest storeInformationRequests, RedirectAttributes attributes)
最佳答案
如果您只是想丢弃重复项,请使用 Set<T>
而不是 List<T>
。来自 Set<T>
文档:
A collection that contains no duplicate elements.
要丢弃重复项,您可以使用:
List<Integer> numbers = Arrays.asList(1, 2, 3, 3, 4, 4);
Set<Integer> unique = new HashSet<>(numbers);
您还可以使用:
List<Integer> numbers = Arrays.asList(1, 2, 3, 3, 4, 4);
List<Integer> unique = numbers.stream()
.distinct()
.collect(Collectors.toList());
如果您有一个列表并想要提取重复项,可以使用以下命令:
List<Integer> numbers = Arrays.asList(1, 2, 3, 3, 4, 4);
List<Integer> duplicates = numbers.stream()
.filter(n -> Collections.frequency(numbers, n) > 1)
.distinct()
.collect(Collectors.toList());
如果您使用Hibernate Validator ,一个 Bean Validation 实现,您可以使用 @UniqueElements
验证集合中的每个元素都是唯一的。
要使用它,请确保您的列表带有 @UniqueElements
注释。 :
@Data
public class LotteryBet {
@UniqueElements
private List<Integer> numbers;
}
然后确保您的 Controller 带有 @Validated
注释和 lotteryBet
参数均用 @RequestBody
进行注释和 @Valid
:
@Validated
@RestController
@RequestMapping("/lottery")
public class LotteryController {
@PostMapping(path = "/bets", consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Void> bet(@RequestBody @Valid LotteryBet lotteryBet) {
...
}
}
如下所示的请求将返回 400
以及有关错误的一些详细信息:
POST /lottery/bets HTTP/1.1
Host: example.org
Content-Type: application/json
{
"numbers": [1, 2, 3, 3, 4, 4]
}
关于java - 如何在java spring中的列表中有效重复元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57769675/
我是一名优秀的程序员,十分优秀!