当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/522948.html

相关文章:

  • Linux-----线程同步(资源竞争和同步锁)
  • 当当网书籍信息爬虫
  • React实现拖拽特效
  • 【竞技宝】LOL:ning直播再次锐评
  • ThreeJS能力演示——界面点选交互能力
  • flutter的web页面
  • 2025.1.17——三、SQLi regexp正则表达式|
  • 虚幻基础2:gameplay框架
  • 使用 Go 语言生成样式美观的 PDF 文件
  • 鸿蒙-点击Notification通知并打开App的具体页面
  • 非科班转码第5年零241天
  • 数据库:MongoDB命令行帮助解释
  • MongoDB单机版安装
  • Azure面试
  • 在.NET用C#将Word文档转换为HTML格式
  • macOS 安装JDK17
  • Django SimpleUI 自定义功能实战
  • C语言/C++自然序列重排列——相邻序号不相邻问题⭐
  • Spring boot面试题---- Spring boot项目运行原理
  • Qt/C++ 基于 QGraphicsView 的绘图软件 (附源码下载链接)
  • 如何使用 useMemo 和 memo 优化 React 应用性能?
  • 数据结构(链表 哈希表)
  • 人工智能之深度学习_[4]-神经网络入门
  • STM32之CubeMX图形化工具开发介绍(十七)
  • css3过渡总结
  • latin1_swedish_ci(latin1 不支持存储中文、日文、韩文等多字节字符)
  • C语言编程笔记:文件处理的艺术
  • [创业之路-255]:《华为数字化转型之道》-1-主要章节、核心内容、核心思想
  • 《汽车维修技师》是什么级别的期刊?是正规期刊吗?能评职称吗?
  • 2024 京东零售技术年度总结