java算法数组平移(java数组左移)

本文目录一览:

Java怎样把数组的元素向左移动?比如把一个数组arr{12 34 45 56 67 78 }移动2次变得45 56 67 78 12 34

当然实现的方法是比较多的,这里给出一种:

//arr循环左移times次

function shiftArr(arr, times){

times = times%(arr.length);//考虑times大于等于length的情况

return arr.slice(times).concat(arr.slice(0, times));

//取出两个子数组然后连接

}

其他的思路有删除arr前若干个元素并添加到其末尾等(参考Array对象的方法)。

如有问题欢迎继续交流!

Java 怎样移动数组的位置~比如1 2 3 4 5 6 移动M位,比如2位,变成3 4 5 6 1 2

import java.util.Scanner;

public class ShuZu_yiwei{

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner input = new Scanner(System.in);

System.out.println(“请输入原数组的数组元素,每个数组元素之间用空格隔开:”);

String s = input.nextLine();

String []str = s.split(” “);//把字符串s按照空格划分,然后存储到数组str中

System.out.println(“请输入要移动的数组元素个数:”);

int M = input.nextInt();

String []array = new String[M];

String []barray = new String[str.length-M];

String []carray = new String[str.length];

System.arraycopy(str, 0, array, 0, M);//把原数组的前面M个复制到array中

System.arraycopy(str, M, barray, 0, barray.length);//把原数组的后str.length-M个复制到array中

System.arraycopy(barray,0,carray,0,barray.length);//把原数组的后str.length-M拷贝到目标数组中的前0到str.length-M,

System.arraycopy(array,0,carray,barray.length,array.length);//把原数组前面M个元素拷贝目标数组的后str.length-M到str.length

System.out.println(“移动后的数组为:”);

for(int i=0;icarray.length;i++)//打印目标数组的每一个元素

{

System.out.print(carray[i]+” “);

if((i+1)%10==0){//每行输出是个数组元素

System.out.println();

}

}

}

}

java数组整体移位问题?如将{1,3,1,2,3,2,3,2}移成{1,1,2,2,2,3,3,3} 如何高效实现。

就是把里面所有的3移动到最后,其他的顺序前移?没法可选的时候我会用遍历,循环来做。

public class ClassB {

public static void main(String… arg){

int [] a = {1,3,2,4,65,21,3,546,3,2,1};

for(int i=0;ia.length;i++){

if(a[i]==3){

int n =i;

for(int j=n+1;ja.length;j++){

a[n]=a[j];

n++;

}

a[a.length-1]=3;

}

}

for(int i =0;ia.length;i++){

System.out.print(a[i]+” “);

}

}

}

方法笨一点,用还是可以用的

1 2 4 65 21 546 2 1 3 3 3

JAVA数组移位

我看不懂,你到底是在平移数组元素还是把指定下标的元素变成默认值?第五个元素原来是4你怎么把它变成0了?

下标越界是肯定的。数组一旦被定义,长度就是不变的。与其说是平移,你这个其实是插入操作,在指定的下标插入默认值。一旦插入新元素,数组的元素个数会变长,但这是不允许的,所以肯定会有下标越界异常。

如果你真的是要插入一个默认元素的话你无法在原来的数组上进行操作,只能声明一个新的数组,长度比原来数组长1,然后把旧的元素复制到新的数组,插入默认值,然后再把array的引用指向新数组。可以这样:

int[] array={0,1,2,3,4,5,6,7,8,9};

int[] temp=new int[array.length+1]; //

int k; //k为指定下标,假设已知

for(int i=0;ik;i++)

temp[i]=array[i]; //复制下标前的元素

temp[k]=0; //设置默认值

for(int i=k;iarray.length;i++)

temp[i+1]=array[i]; //复制下标后的元素

array=temp; //改变数组引用

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/277447.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-19 13:21
下一篇 2024-12-19 13:21

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Python导入数组

    本文将为您详细阐述Python导入数组的方法、优势、适用场景等方面,并附上代码示例。 一、numpy库的使用 numpy是Python中一个强大的数学库,其中提供了非常丰富的数学函…

    编程 2025-04-29
  • Python实现爬楼梯算法

    本文介绍使用Python实现爬楼梯算法,该算法用于计算一个人爬n级楼梯有多少种不同的方法。 有一楼梯,小明可以一次走一步、两步或三步。请问小明爬上第 n 级楼梯有多少种不同的爬楼梯…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29

发表回复

登录后才能评论