Java学习,List移动元素

Java实现List中元素的循环移动(即将列表中的元素向右或向左移动指定数量的位置),可以使用多种方法。

List元素移动指定位置:

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

public class RotateList {

public static void main(String\[\] args) {

List<Integer> list = new ArrayList<>();

// 初始化列表

Collections.addAll(list, 1, 2, 3, 4, 5, 6, 7);

System.out.println("原始列表: " + list);

// 循环移动位置(向右移动3个位置)

int rotateCount = 3;

List<Integer> rotatedList = rotateRight(list, rotateCount);

System.out.println("向右移动" + rotateCount + "个位置后的列表: " + rotatedList);

}

/**

* 将列表元素向右循环移动指定的位置

*

* @param list 原始列表

* @param rotateCount 要移动的位置数

* @return 移动后的新列表

*/

public static List<Integer> rotateRight(List<Integer> list, int rotateCount) {

if (list == null || list.isEmpty() || rotateCount == 0) {

return new ArrayList<>(list);

}

int size = list.size();

rotateCount = rotateCount % size; // 防止移动超过列表长度

List<Integer> rotatedList = new ArrayList<>(size);

// 将后部分元素移到新列表的前面

for (int i = size - rotateCount; i < size; i++) {

rotatedList.add(list.get(i));

}

// 将前部分元素移到新列表的后面

for (int i = 0; i < size - rotateCount; i++) {

rotatedList.add(list.get(i));

}

return rotatedList;

}

}

Collections的rotate() 循环移动元素:

import java.util.*;

public class Main {

public static void main(String\[\] args) {

List list = Arrays.asList("one Two three Four five six".split(" "));

System.out.println("List :"+list);

Collections.rotate(list, 3);

System.out.println("rotate: " + list);

}

}

相关推荐
笑鸿的学习笔记1 分钟前
C++笔记之大块顺序写
java·c++·笔记
for_ever_love__9 分钟前
机器学习入门——手写线性回归与梯度下降
人工智能·python·学习·机器学习·线性回归
打工仔折腾 AI13 分钟前
从 Demo 到生产级 Agent:8 个关键设计机制与 Python 实现拆解
java·jvm·人工智能·后端·python·langchain·ai agent 实战
在猴站学算法14 分钟前
(SQL注入学习)无回显的报错注入(Error-Based)
学习·网络安全·sql注入·ctf竞赛
I Am a robert girl18 分钟前
当传感器学会“说谎“:拆解可靠性门控的稀疏惯性动捕融合
python·姿态估计·传感器融合·惯性动捕·imu传感器·可靠性门控·可穿戴计算
李航19831 小时前
AI定制柜建模,需要详细的建模规范和标准流程
人工智能·python·计算机视觉·ai·ai编程
沙漠之主1 小时前
Python 教学设计资料:从入门到实战的完整课程方案
爬虫·python
殷色玫瑰1 小时前
C/C++ 内存管理详解:从内存分布到 new/delete 底层原理
java·linux·c语言·c++
ZealSinger2 小时前
Boot4挂起函数丢traceId怎么修
spring boot·kotlin·协程·可观测性
知识分享小能手2 小时前
C++ 学习教程,从入门到精通,C++ 友元、异常和其他特性 — 详细知识点(15)
开发语言·c++·学习