1.需求
本篇文章记录,为了处理将List列表中的某个元素位置,放到指定的位置。
现存在一个列表,将“中国”国家,放在第一个位置。
2. 准备数据
/**
* 创建数据
*/
private List<String> getDataList() {
List<String> dataList = new ArrayList<>();
dataList.add("印度");
dataList.add("俄罗斯");
dataList.add("英国");
dataList.add("中国");
dataList.add("法国");
dataList.add("泰国");
return dataList;
}
3.测试
1.第一种方法
思路:交换元素的位置,将“中国”和List中的第一个元素进行位置交换。
Collections.swap(List<?> list, int i, int j)
参数说明:list – 交换元素的列表。
i - 要交换的一个元素的索引。
j - 要交换的另一个元素的索引
代码演示:
/**
* 测试目的:
* 在集合中,将某个元素,放入特定的位置.
* 需求: 集合中将"中国",放到集合的第一个位置.
*
* 第一种:这里使用 Collections.swap() 方法,该方法是将列表中的元素的索引进行交换位置.
*/
@Test
public void test06() {
List<String> dataList = this.getDataList();
System.out.println("初始集合数据:" + dataList);
// 第一步:获取到"中国",在集合中的下标
int index = 0;
for (int i = 0; i < dataList.size(); i++) {
if ("中国".equals(dataList.get(i))) {
index = i;
break;
}
}
// 第二步:调用交换元素 Collections.swap(交换的元素的列表,要交换的第一个索引,要交换的另外一个索引)
Collections.swap(dataList, index, 0);
System.out.println("调整位置后的集合:" + dataList);
}
结果输出:
初始集合数据:[印度, 俄罗斯, 英国, 中国, 法国, 泰国]
调整位置后的集合:[中国, 俄罗斯, 英国, 印度, 法国, 泰国]
2.第二种方法
思路: 删除列表中"中国"元素,在列表的第一个位置插入进去。
list.remove() - 删除指定的元素
list.add(int index, E element) - 在指定索引位置,插入元素
代码演示:
/**
* 第二种:找到当前元素,删除掉,然后重新插入到第一个位置。
*/
@Test
public void test07() {
List<String> dataList = this.getDataList();
System.out.println("初始集合数据:" + dataList);
String currentElement = "中国";
dataList.remove(currentElement);
dataList.add(0, currentElement);
System.out.println("调整位置后的集合:" + dataList);
}
结果输出
初始集合数据:[印度, 俄罗斯, 英国, 中国, 法国, 泰国]
调整位置后的集合:[中国, 印度, 俄罗斯, 英国, 法国, 泰国]
4.总结
第一种,调用Collections.swap()方法,对列表中元素进行位置交换;
第二种,则删除列表中元素,然后重新插入进去。
(未完待续,如果有更好的办法持续更新…)