導航:首頁 > 編程語言 > java數組移動

java數組移動

發布時間:2023-01-31 03:21:59

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;i<k;i++)
temp[i]=array[i]; //復制下標前的元素
temp[k]=0; //設置默認值
for(int i=k;i<array.length;i++)
temp[i+1]=array[i]; //復制下標後的元素

array=temp; //改變數組引用

Ⅱ java 將一個整型數組每一個元素向前(向標號小的方向)移動一個位置,第一個元素移到最後一個位置

publicclassMoveArray{
publicstaticvoidmain(String[]args){
int[]arr={1,2,3};
arr=moveArray(arr);
for(inti=0;i<arr.length;i++){
System.out.print(arr[i]+"");
}
}
publicstaticint[]moveArray(int[]arr){
int[]returnArr=newint[arr.length];
if(returnArr.length<1)returnnewint[0];
for(inti=0;i<arr.length-1;i++){
returnArr[i]=arr[i+1];
}
returnArr[arr.length-1]=arr[0];
returnreturnArr;
}
}

Ⅲ Java 數組數據移動

public static void main(String[] arg){Scanner sc = new Scanner(System.in);System.out.println("請輸入數組長度(建議5~10)");int count = 0;while (!e68a847a6431333433626437(count > 0)){if (sc.hasNextInt()) {count = sc.nextInt();sc.nextLine();if (count <= 0){System.out.println("請輸入大於0的數字");}} else {System.out.println("不是數字");}}String[] str = null;while (str == null || str.length != count){System.out.println("請輸入"+ count +"個數字,用空格隔開");if (sc.hasNextLine()){str = sc.nextLine().split("\s+");}}int move = 0;System.out.println("請輸入向右移動的位數");while (!(move > 0)){if (sc.hasNextInt()) {move = sc.nextInt();if (move <= 0){System.out.println("請輸入大於0的數字");}} else {System.out.println("不是數字");}}for (int i = 0; i < count; i++){System.out.print(str[(count + i - move%count)%count] + " ");}}

Ⅳ Java數組數據移動

public static void main(String[] arg)
{
Scanner sc = new Scanner(System.in);
System.out.println("請輸入數組長度(建議5~10)");
int count = 0;
while (!(count > 0))
{
if (sc.hasNextInt()) {
count = sc.nextInt();
sc.nextLine();
if (count <= 0)
{
System.out.println("請輸入大於0的數字");
}
} else {
System.out.println("不是數字");
}
}

String[] str = null;
while (str == null || str.length != count)
{
System.out.println("請輸入"+ count +"個數字,用空格隔開");
if (sc.hasNextLine())
{
str = sc.nextLine().split("\s+");
}

}
int move = 0;
System.out.println("請輸入向右移動的位數");
while (!(move > 0))
{
if (sc.hasNextInt()) {
move = sc.nextInt();
if (move <= 0)
{
System.out.println("請輸入大於0的數字");
}
} else {
System.out.println("不是數字");
}
}

for (int i = 0; i < count; i++)
{
System.out.print(str[(count + i - move%count)%count] + " ");
}
}

Ⅳ java 按照目標數組移動元素,求最小移動次數

import java.util.*;public class Test{ public static void main(String[] args) { int[] a = new int[10]; Scanner input = new Scanner(System.in); for(int i=0;i<10;i++) a[i]=input.nextInt(); int chg=0,cmp=0; for(int i=0;i<9;i++) for(int j=0;j<9-i;j++) { cmp++; if(a[j]>a[j+1]) { chg++; int t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } System.out.println(Arrays.toString(a)); System.out.println("比較次數:"+cmp); System.out.println("交換次數:"+chg); input.close(); }}

Ⅵ java中怎樣把數組中的一段數據移動到後面

這個叫冒泡排序。預先聲明一個符合數組類型的變數,把你需要移動的值傳給聲明的變數,再把移動變數後面的值往前移動一步,然後再把聲明的變數值給挪空的那個下標位置。

Ⅶ Java數組元素位置怎麼交換

1、定義一個int類型的一維數組,內容為{6,2,9,15,1,5,20,7,18}。

2、將數組最大元素與最後一位元素進行交換,最小元素與第一位元素進行交換,並列印數組。

具體如下:
1、簡介
編程是編寫程序的中文簡稱,就是讓計算機代為解決某個問題,對某個計算體系規定一定的運算方式,是計算體系按照該計算方式運行,並最終得到相應結果的過程。
為了使計算機能夠理解人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和計算體系之間交流的過程就是編程。
2、匯編程序
匯編程序。使用匯編語言編寫計算機程序,程序員仍然需要十分熟悉計算機系統的硬體結構,所以從程序設計本身上來看仍然是低效率的、繁瑣的。但正是由於匯編語言與計算機硬體系統關系密切,在某些特定的場合,如對時空效率要求很高的系統核心程序以及實時控製程序等,迄今為止匯編語言仍然是十分有效的程序設計工具。
3、執行原理
計算機對除機器語言以外的源程序不能直接識別、理解和執行,都必須通過某種方式轉換為計算機能夠直接執行的。這種將高級編程硬體程序設計語言編寫的源程序轉換到機器目標程序的方式有兩種:解釋方式和編譯方式。

Ⅷ 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數組實例,將數組數字往數組後一位移動

int[] nums={1,2,3,4,5,0};
int num;
for(int i=0;i<=5;i++){
num=nums[i];
nums[i]=nums[5];
nums[5]=num;
}

Ⅹ 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.array(str, 0, array, 0, M);//把原數組的前面M個復制到array中
System.array(str, M, barray, 0, barray.length);//把原數組的後str.length-M個復制到array中
System.array(barray,0,carray,0,barray.length);//把原數組的後str.length-M拷貝到目標數組中的前0到str.length-M,
System.array(array,0,carray,barray.length,array.length);//把原數組前面M個元素拷貝目標數組的後str.length-M到str.length
System.out.println("移動後的數組為:");
for(int i=0;i<carray.length;i++)//列印目標數組的每一個元素
{
System.out.print(carray[i]+" ");
if((i+1)%10==0){//每行輸出是個數組元素
System.out.println();
}
}
}
}

閱讀全文

與java數組移動相關的資料

熱點內容
有伺服器地址怎麼安裝軟體 瀏覽:659
安卓如何完全清除數據 瀏覽:690
安卓安卓證書怎麼信任 瀏覽:53
伺服器被攻擊如何解決 瀏覽:221
學霸變成程序員 瀏覽:881
c語言編譯錯誤fatalerror 瀏覽:441
ipv4內部伺服器地址怎麼分配 瀏覽:463
java線程安全的方法 瀏覽:950
重復命令畫梯形 瀏覽:164
在疫情就是命令 瀏覽:328
自己搭建一個什麼伺服器好玩 瀏覽:253
java基礎馬士兵 瀏覽:823
完美世界手游如何查看伺服器 瀏覽:859
光遇安卓與ios什麼時候互通 瀏覽:598
js如何運行時編譯 瀏覽:917
引力app在哪裡下載 瀏覽:609
編寫app如何得到錢 瀏覽:801
吉利汽車軟體放哪個文件夾安裝 瀏覽:223
多文件編譯c 瀏覽:543
頭頂加密後為什麼反而更稀疏 瀏覽:794