Java对集合的操作方法

news/2024/12/15 18:22:04/

1. 数组转集合

java">//数组转集合
String[] split = quickRechargeAmount.split(",");
List<String> stringList = Stream.of(split).collect(Collectors.toList());

2. 对List集合数据内容进行分组

java">//对List集合数据内容进行分组
Map<String, List<LiveAppGiftResponse>> collectList = giftResponseList.stream().collect(Collectors.groupingBy(LiveAppGiftResponse::getGiftTypeName));

3. 匹配两个集合内相等的元素,生成新的集合

java">//匹配两个集合内相等的元素,生成新的集合
private List<AppLiveUserRankResponse> getUserRankInfo(List<LiveUserRankCache> dayRankCacheList, Integer anchorId) {List<AppLiveUserInfoResponse> userRewardList = appLiveRewardMapper.getUserRewardList(CommonContext.get().getSiteId(), anchorId);if (CollectionTool.isNotEmpty(dayRankCacheList) && CollectionTool.isNotEmpty(userRewardList)) {//组装用户与排行榜信息List<AppLiveUserRankResponse> userRankList = dayRankCacheList.stream().map(dayRankCache -> userRewardList.stream().filter(userReward -> Objects.equals(userReward.getUserId(), dayRankCache.getUserId())).findFirst().map(m -> {AppLiveUserRankResponse appLiveUserRank = new AppLiveUserRankResponse();appLiveUserRank.setRank(dayRankCache.getRank());appLiveUserRank.setScore(dayRankCache.getScore());appLiveUserRank.setAvatarUrl(m.getAvatarUrl());appLiveUserRank.setNickName(m.getNickName());return appLiveUserRank;}).orElse(null)).filter(Objects::nonNull).collect(Collectors.toList());return userRankList;}return null;
}

4. 根据A集合某元素去对比B集合某元素,生成过滤后的B集合

java">//根据A集合某元素去对比B集合某元素,生成过滤后的B集合
public List<User> selectUnassignedGameList(List<User> userBList) {// 查询所有用户信息List<User> userAList = this.list();// 获取userBList的中所有用户信息并对比后排除userAList已存在用户信息List<User> list = userBList.stream().filter(b -> !userAList.stream().map(a-> a.getUId()).collect(Collectors.toList()).contains(b.getUId())).collect(Collectors.toList());return list;}

5. 集合内某一元素比对特定条件进行排序

java">        //查询当前账户币种信息集合List<LiveCustomerWallet> customerWalletList = customerWalletMapper.search(Criteria.add(LiveCustomerWallet.PROP_CUSTOMER_ID, Operator.EQ, model.getUserId()), Order.asc(LiveCustomerWallet.PROP_CURRENCY));if (CollectionTool.isNotEmpty(customerWalletList)){//先按指定币种排序,然后再主货币排序,再按币种排序String mainCurrency = BaseCacheTool.getSysSite(model.getSiteId()).getMainCurrency();if (!mainCurrency.equals(model.getCurrency())){customerWalletList.sort((o1, o2) -> {int i = o1.getCurrency().equals(mainCurrency) ? 0 : 1;int i2 = o2.getCurrency().equals(mainCurrency) ? 0 : 1;return i - i2;});}customerWalletList.sort((o1, o2) -> {int i = o1.getCurrency().equals(model.getCurrency()) ? 0 : 1;int i2 = o2.getCurrency().equals(model.getCurrency()) ? 0 : 1;return i - i2;});}

6. 集合去重

java">//使用java steam进行去重
List<Integer> list = numbersList.stream().distinct().collect(Collectors.toList());//将重复的列表添加到 LinkedHashSet,然后将内容返回到列表中
LinkedHashSet<Integer> hashSet = new LinkedHashSet<>(numbersList);

7. 对集合进行分页并模糊查询

java">import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;public class ListTest {public static void main(String[] args) {List<User> list = new ArrayList<>();list.add(new User("zhangsan", 18));list.add(new User("lisi", 19));list.add(new User("wangwu", 20));list.add(new User("zhaoliu", 21));String searchName = "h";// 是否全部匹配,还是 局部包含匹配Boolean globalMatch = Boolean.FALSE;//获取当前页int pageNumber = 1;//一页返回多少条int pageSize = 2;List<User> stringList = list.stream().filter(l -> globalMatch?l.getName().equals(searchName):l.getName().contains(searchName))//根据年龄升序排序.sorted(Comparator.comparing(User::getAge)).collect(Collectors.toList());//一页 返回二条List<User> pageList = stringList.stream().skip((pageNumber-1)*pageSize).limit(pageSize).collect(Collectors.toList());System.out.println("返回总条数:"+stringList.size()+"当前页为:"+pageNumber+"每页显示条数:"+pageSize);System.out.println("本次返回的数据为:");pageList.forEach(System.out::println);}
}
class User{private String name;private Integer age;public User(String name, Integer age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +'}';}
}

http://www.ppmy.cn/news/1555368.html

相关文章

《软件无线电简介》

《软件无线电简介》 一、软件无线电的定义 软件无线电&#xff08;Software - Defined Radio&#xff0c;SDR&#xff09;是一种无线电通信技术&#xff0c;它的基本思想是将尽可能多的无线电功能通过软件来实现&#xff0c;而不是传统的通过专用硬件电路来完成。例如&#x…

鼠标断断续续的一直转圈咋办

这两天碰到一个事情&#xff0c;鼠标持续的转圈&#xff0c; 敲代码打字啥的&#xff0c;一会儿又失去下焦点&#xff0c;如此反复&#xff0c;搞得心态爆炸。 实在进行不下去了&#xff0c;网上百度了一堆&#xff0c;有说设置鼠标的&#xff0c;有说清理开机启动的&#xff0…

elasticsearch设置默认账号密码

1.进入elasticsearch的bin目录下&#xff0c;输入命令&#xff1a; elasticsearch-setup-passwords interactive 2.输入对应的账号密码&#xff0c;然后重启elasticsearch&#xff0c;用对应的账号密码登录访问即可

day 47 第九章 动态规划part11

第九章 动态规划part11 1143.最长公共子序列 体会一下本题和 718. 最长重复子数组 的区别 代码随想录 1035.不相交的线 其实本题和 1143.最长公共子序列 是一模一样的&#xff0c;大家尝试自己做一做。 代码随想录 最大子序和 这道题我们用贪心做过&#xff0c;这次 再…

漫谈 Vercel Serverless 函数

我们需要明白什么是 Serverless。顾名思义&#xff0c;Serverless 并不是没有服务器&#xff0c;而是 “不需要你管理服务器”。就像你去超市买东西&#xff0c;不用自己去种菜、养鸡&#xff0c;直接挑选、付款就好。Vercel 的 Serverless 函数也是类似的&#xff0c;它帮你自…

ionic capacitor JSValueEncodingContainer报错

try to clean the build folder. exit Xcode. upgrade your capacitor core libraries update cocoapods to 1.13.0 do “pod install --repo-udpdate” after that: ionic build --prodnpx cap updatenpx cap syncnpx cap open ios capacitor ios最低版本要求13 [Bug]:…

基于windows环境使用nvm安装多版本nodejs

目录 前言 一、卸载node 二、nvm是什么&#xff1f; 三、nvm安装 1.官网下载 nvm 包 2. 安装nvm-setup.exe 3. 配置路径和下载镜像 4. 检查安装是否完成 四、 使用nvm安装node 五、修改npm默认镜像源为淘宝镜像 六、环境变量配置 1. 新建目录 2. 设置环境变量 七…

HuggingGPT Solving AI Tasks with ChatGPT and its Friends in Hugging Face 论文解读

1. 引言 近年来&#xff0c;大型语言模型&#xff08;LLMs&#xff09;如ChatGPT在自然语言处理领域取得了惊人的进展&#xff0c;展现出强大的语言理解、生成和推理能力。然而&#xff0c;当前的LLMs仍然存在一些局限性&#xff0c;例如无法处理复杂信息&#xff08;如视觉和…