List列表将元素放到指定位置

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()方法,对列表中元素进行位置交换;
第二种,则删除列表中元素,然后重新插入进去。
(未完待续,如果有更好的办法持续更新…)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值