Java学习,List移动元素

devtools/2025/1/23 21:57:20/

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);
   }
}


http://www.ppmy.cn/devtools/152970.html

相关文章

Ardupilot开源无人机之Geek SDK进展2024-2025

Ardupilot开源无人机之Geek SDK进展2024-2025 1. 源由2. 状态3. TODO3.1 【进行中】跟踪目标框3.2 【暂停】onnxruntime版本3.3 【完成】CUDA 11.8版本3.4 【完成】pytorch v2.5.1版本 - Jetpack53.5 【未开始】Inference性能3.6 【未开始】特定目标集Training 4. Extra-Work4.…

Django学习笔记(启动项目)-03

Django学习笔记(启动项目)-03 1、在urls文件中配置一个路由url 2、在views文件中创建视图函数 3、启动项目测试结果 # 输入项目启动命令 python manage.py runserver4、创建HTML模版和静态文件 1、在templates文件夹中创建一个html 2、创建url路由与视图函数 3、测试效果 4、…

(三)线性代数之二阶和三阶行列式详解

在前端开发中&#xff0c;尤其是在WebGL、图形渲染、或是与地图、模型计算相关的应用场景里&#xff0c;行列式的概念常常在计算变换矩阵、进行坐标变换或进行图形学算法时被使用。理解二阶和三阶行列式对于理解矩阵运算、旋转、平移等操作至关重要。下面&#xff0c;我将结合具…

docker Ubuntu实战

目录 Ubuntu系统环境说明 一、如何安装docker 二、发布.netcore应用到docker中 Ubuntu系统环境说明 cat /etc/os-release PRETTY_NAME"Ubuntu 22.04.5 LTS" NAME"Ubuntu" VERSION_ID"22.04" VERSION"22.04.5 LTS (Jammy Jellyfish)&quo…

如何优化虚拟化服务器在高负载环境下的性能?

虚拟化服务器利用虚拟化技术将物理服务器的硬件资源如CPU、内存、硬盘和网络带宽等)划分成多个虚拟机&#xff0c;每个虚拟机像独立的物理服务器一样运行操作系统和应用程序。虚拟机之间相互隔离&#xff0c;彼此共享底层硬件资源。虚拟化服务器可以通过Hypervisor虚拟机监控器…

研究 Day.js 及其在 Vue3 和 Vue 框架中的应用详解

前言 在前端开发中&#xff0c;日期和时间处理是一个常见需求。随着技术的发展&#xff0c;我们有了更多高效、灵活的日期库可供选择。Day.js 就是一个轻量级、易于使用的 JavaScript 日期库&#xff0c;其灵感来源于 Moment.js&#xff0c;但体积更小&#xff0c;速度更快。本…

如何在 macOS 上安装 PIP ?

PIP 是任何 Python 开发人员必备的工具&#xff0c;因为它简化了安装和管理 Python 包的过程。本教程是为 macOS 用户量身定制的&#xff0c;并假设对使用终端有基本的了解。 必备条件 在安装 PIP 之前&#xff0c;必须确保您的系统上已经安装了 Python。Python 3.4 及更高版…

c#配置config文件

1&#xff0c;引用命名空间 Configuration 及配置信息