集合List 元素的位置转换
需求说明:在和前端交互的时候,有对数据特殊要求(前端,后端都可以处理,这里是后端处理),所以需要对当前返回给前端的一个ArrayList<对象> 集合进行处理,确保某个对象信息 在list的最后一位;
非对象集合处理代码如下:
ArrayList<String> stringArrayList = new ArrayList<>( );
stringArrayList.add("1");
stringArrayList.add("1");
stringArrayList.add("2");
stringArrayList.add("1");
stringArrayList.add("1");
System.out.println(new Gson().toJson(stringArrayList) );
Collections.swap(stringArrayList, stringArrayList.indexOf("2"), stringArrayList.size()-1);
System.out.println(new Gson().toJson(stringArrayList) );
运行结果:
对象集合代码如下:
for (Data data: dataList) {
if (StringUtil.isNotNull(data.getName()) && "张三".equals(bean.getName())){
Collections.swap(dataList, dataList.indexOf(bean), dataList.size()-1);
}
}
核心代码
Collections.swap(endList, endList.indexOf(bean), endList.size()-1);
集合类swap()方法
大概说明:
swap()方法在java.util包中可用。
swap()方法用于将给定列表(l)中索引为f1的元素与索引为f2的元素交换。
swap()方法是一个静态方法,可以通过类名进行访问,如果尝试使用类对象访问该方法,那么也不会出现任何错误。
swap()方法在分配索引时可能会引发异常:
IndexOutOfBoundsException:当给定索引f1或f2不在范围内时,可能引发此异常。
语法:
public static void swap(List l , int f1, int f2);
参数:
列表l :表示交换元素的列表。
int f1 :表示要与其他元素f2交换的f1元素的索引。
int f2 :表示要与其他元素f1交换的f2元素的索引。
返回值:
此方法的返回类型为void,它不返回任何内容。