关于数组的一部分内容

    xiaoxiao2023-10-12  146

    一维数组: ○1数组:1.相同数据类型的集合 2.一块连续内存 ○2一维数组的定义: 1)int [] arr = {1,2,3}; 2)int [] arr = new int []{1,2,3}; 3)int [] arr = new int [3]; ○3数据访问:arr [0] = 99;arr [1] = 100; ○4遍历: 1)for(int index = 0;index < arr.length;index ++){ //System.out.println(arr [index]);} 2)foreach: for(int value:arr){ System.out.println(value);} 3)System.out.println(Arrays.toString(arr)); 例: 1): package com.com.com; import java.util.*; public class TestDemo{

    public static void main(String[] args) { int [] arr = new int[]{1,2,3}; // arr [1] = 99; // System.out.println(arr [1]); // for(int i = 0;i < arr.length;i++){ // System.out.print(arr [i] + " "); // } int [] brr = new int [arr.length + 1]; for(int i = 0;i < arr.length;i++) { brr[i] = arr[i]; } brr [brr.length - 1] = 4; System.out.println(Arrays.toString(brr)); } } 2):奇数在前,偶数在后 package com.com.com; import java.util.*; public class TestDemo{

    public static void main(String[] args) { int [] arr = {1,2,3,4,5,6,7,8}; int [] brr = new int[arr.length]; int i = 0; int left = 0,right = brr.length-1; for(;i < arr.length;i++){ if(arr[i] % 2 == 1){ brr[left++] = arr[i]; } else{ brr[right–] = arr[i]; } } System.out.println(Arrays.toString(brr)); } } 或 package com.com.com; import java.util.*; public class TestDemo{

    public static void main(String[] args) { int [] arr = {1,2,3,4,5,6,7,8}; int i = 0,j = arr.length - 1; while(i + 1 < j){ while(i < j && arr[i] % 2 == 1){//i下标所在值是奇数 i++; } while(i < j && arr[j] % 2 == 0){ j–; }//i标记偶数,j标记奇数 int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } System.out.println(Arrays.toString(arr)); } } ○5数组拷贝: 浅拷贝:拷贝出来的内容存在内存共享 深拷贝:拷贝出来的内容没有内存共享(1~4均为深拷贝) 1)for int [] arr = {1,2,3}; int [] brr = new int [arr.length]; for(int i = 0;i < arr.length;i++){ brr[i] = arr[i]; } 2)int [] brr = arr.clone(); 3)brr = Arrays.copyOf(arr,arr.length); 4)System.arraycopy(arr,0,brr,0,arr.length);(效率更高) ○6数组扩容: 例: package com.com.com; import java.util.*; public class TestDemo { public static int[] addValue(int [] arr,int value){ arr = Arrays.copyOf(arr,arr.length + 1); arr[arr.length - 1] = value; return arr; } public static void main(String[] args) { int [] arr = {1,2,3}; arr = addValue(arr,4); System.out.println(Arrays.toString(arr)); } } ○7数组缩容: arr = Arrays.copyOf(arr,arr.length - 1);

    最新回复(0)