生活随笔
收集整理的這篇文章主要介紹了
数组的扩容与缩减
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
= = = = 數(shù)組的擴(kuò)容與縮減= = = =
一、擴(kuò)容基本思想
1、定義一個(gè)新數(shù)組,其類(lèi)型與原來(lái)數(shù)組一致
2、新數(shù)組的容量比原數(shù)組 大1;
3、把原數(shù)組的值遍歷賦值給新數(shù)組
4、把要添加的數(shù)賦值在新數(shù)組的最后一個(gè)位置
5、把新數(shù)組 地址傳遞給 原數(shù)組,實(shí)現(xiàn)擴(kuò)容
代碼如下:
import java.util.Scanner;//數(shù)組的擴(kuò)容
public class Array07{public static void main(String[] args) {Scanner myScanner = new Scanner(System.in);int[] arr = {1,2,3};//定義一個(gè)靜態(tài)數(shù)組do{ int[] arrNew = new int[arr.length+1];//容量比原數(shù)組大 1for (int i = 0; i < arr.length ; i++) {arrNew[i] = arr[i];//把值賦給新數(shù)組}System.out.println("請(qǐng)輸入要添加的數(shù)");int num = myScanner.nextInt();//鍵盤(pán)輸入要添加的值arrNew[arrNew.length-1] = num;//增加新元素 arr = arrNew;//地址傳遞實(shí)現(xiàn)原數(shù)組的擴(kuò)容for (int i = 0;i < arr.length ; i++) {System.out.println(arr[i]+"\t");//輸出新的數(shù)組}System.out.println("添加成功,是否繼續(xù)?");char ans = myScanner.next().charAt(0);//判斷是否還需要繼續(xù)擴(kuò)容if(ans != 'y'){break;}}while(true); //條件默認(rèn)設(shè)置為真,在do里面判斷條件,//如果不滿足則退出循環(huán)System.out.println("你退出了添加");}}
二、數(shù)組的縮減
1、數(shù)組的縮減相對(duì)于數(shù)組的擴(kuò)容更簡(jiǎn)單,因?yàn)椴挥幂斎胄略?#xff0c;但是也需要判斷當(dāng)數(shù)組長(zhǎng)度為 1 時(shí) ,需要退出刪除操作。代碼如下
import java.util.Scanner;
public class Array08{public static void main(String[] args) {Scanner myScanner = new Scanner(System.in);int[] arr = {1,2,3,5,8,9,22,44};do{int[] arrNew = new int[arr.length-1];for (int i = 0; i < arr.length-1 ; i++) {//刪除最后一個(gè)元素后數(shù)組長(zhǎng)度 - 1arrNew[i] = arr[i];//賦值}arr = arrNew; //指向同一個(gè)地址for (int i = 0;i < arr.length ; i++) {System.out.println(arr[i]+"\t");//輸出新的數(shù)組}if(arr.length < 2){System.out.println("已經(jīng)是最后一個(gè)元素,不能刪除!");break;}System.out.println("刪除成功,是否繼續(xù)?");char ans = myScanner.next().charAt(0);//鍵盤(pán)輸入是否繼續(xù)刪除if(ans != 'y'){break;}}while(true);System.out.println("你退出了刪除");}}
總結(jié)
以上是生活随笔為你收集整理的数组的扩容与缩减的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。