高血压专题网,内容丰富有趣,生活中的好帮手!
高血压专题网 > 实体对象集合中根据实体对象的某一属性进行大小排序

实体对象集合中根据实体对象的某一属性进行大小排序

时间:2022-08-16 03:15:34

相关推荐

实体对象集合中根据实体对象的某一属性进行大小排序

背景代码实现思路简述效果图示

背景

今天我的领导跟我提了一个小小的建议,我觉得很不错。我有这么一个界面,显示的是小车的电量信息,界面很简单,简单的由listView控件展示数据。界面的小车电量信息是根据实时包获取得到的,所以数据源中的电量值大小显然不是有序排列的。但是我这边也没做处理,只要求查看电量信息,我就简单的只做了数据的展示,没有根据小车id大小或者是小车电量值大小进行排序并展示。

领导的建议说:我觉得这个列表的数据你可以根据小车的电量值大小进行排序,从上到下电量值按从小到大进行排序。这样方便查找出更低电量的小车,我觉得很有道理,于是做出调整。下面看我的实现方法。

代码实现

List<CarBatteryInfoEntity> orderList = new ArrayList<>();// 创建集合保存对实体对象某一属性进行大小排序后数据集/*** 根据电量值排序(由小到大)*/private void orderList() {orderList = tempList;// 先将需要排序的实体对象集合赋值给orderList集合int len = orderList.size();// 长度for (int i = 0;i < len;i++){for (int j = 0;j < len - (i + 1);j++){// 将较大电量值的实体对象向后移动if (orderList.get(j).getLaveBattery() > orderList.get(j+1).getLaveBattery()){// 获取j、j+1位置处的两个实体对象CarBatteryInfoEntity entityJ = new CarBatteryInfoEntity();entityJ.setRobotID(orderList.get(j).getRobotID());entityJ.setLaveBattery(orderList.get(j).getLaveBattery());entityJ.setVoltage(orderList.get(j).getVoltage());CarBatteryInfoEntity entityJ1 = new CarBatteryInfoEntity();entityJ1.setRobotID(orderList.get(j+1).getRobotID());entityJ1.setLaveBattery(orderList.get(j+1).getLaveBattery());entityJ1.setVoltage(orderList.get(j+1).getVoltage());// 交换一下位置orderList.remove(j);orderList.add(j, entityJ1);orderList.remove(j+1);orderList.add(j+1, entityJ);}}}}

思路简述

从集合中第一个实体对象开始,依次和集合中的后面的实体对象的电量值的大小进行对比。

如果第j个位置的实体对象的电量值大于第j+1个位置的实体对象的电量值,那么两个位置的实体对象进行互换。

让电量值更大的实体对象放在集合的后面位置,当所有的实体对象都比较完后,集合中最后一个位置的实体对象的电量值就是最大的了。

互换也很简单,先获取j位置和j+1位置的实体对象,然后集合先移除对象,再添加对象,就完成了互换。

效果图示

A little bit of progress every day!Come on!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。