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/zh-hk/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

發表回復

登錄後才能評論