Java如何调整一个对象集合(ArrayList)中某一项在集合中的顺序
分类:计算机 | Java | 集合 1299
更新:2021-11-05 01:42:42编辑
1 说明
假如有一个对象集合userList,其中集合元素的类型是User类:
public class User{
private String name;
private int age;
......
}
List<User> userList=new ArrayList<>();
User user1=new User('张三',21);
User user2=new User('李四',22);
User user3=new User('王五',23);
userList.add(user1);
userList.add(user2);
userList.add(user3);
如果我们想把“王五”的顺序调整为第一个,应该怎么做呢?
2 方法1——直接按照已知的顺序调整
目前我们知道userList集合中3个用户的顺序,张三是0,李四是1,王五是2,那么可以通过如下代码调整“王五”的顺序:
User user=userList.get(2);
userList.remove(2); //先将“王五”这个元素删除
userList.add(0,user); //将刚才取出的“王五”放到第0的位置
上面代码可以简写为:
userList.add(0,userList.remove(2));
3 方法2——如果元素顺序不确定,可以通过属性name先查到“王五”这个对象,然后调整其顺序
List<User> userListSelect =userList.stream().filter(a-> a.getName().equals("王五")).collect(Collectors.toList());
if(userListSelect!=null&&userListSelect.size()>0){
User userNew=userListSelect.get(0); //先查出要调整顺序的集合元素
userList.remove(userListSelect.get(0)); //先将王五从集合中移除
userList.add(0,userNew); //将王五添加到集合中指定的位置
}
猿导航
阅读排行榜
- 1vue和el-table使用经验-如何刷新表格数据10962
- 2three.js加载3D瓦片和3dtiles数据生成交互式地图的开源项目9510
- 3Microsoft Visual C++ Redistributable是什么,有什么作用?7287
- 4mybatis使用经验——mybatis-spring-boot-starter和mybatis的版本对应关系表(持续更新~)5869
- 5uni-app使用经验—vue页面和html页面如何互相调用接口并传参5489
- 6Intellij IDEA下的版本控制VCS的启用与关闭4926
- 7Spring学习经验—@ResponseBody注解的使用说明4907
- 8Druid异常解决经验—java.sql.SQLException url not set4522
- 9如何用批处理命令(bat脚本)启动和停止windows服务4301
- 10nuxt.js项目中如何添加和使用全局变量4165
- 11解决SpringBoot使用maven下载不了jar包的问题3503
- 12linux中解压tar.gz文件报错“gzip: stdin: invalid compressed data--format violated”3405
- 13nuxtjs asyncData使用经验—如何发起多个axios请求并携带参数3253
- 14在Nuxt.js项目的head中引用外部js文件3095
- 15在NVIDIA控制面板设置参数时提示“拒绝访问 无法应用选定的设置到您的系统”的解决方法之一3072