1.数组添加数据
数组在使用时会给定具体长度,如果需要添加数据,考虑解决数组的长度不可变的问题
思想:创建一个新的数组,大小比原长度大1 ,将原数组中的内容复制一份到新数组,把要添加的数据
加入,最后把这个数组替换原数组。
package math;
import java.util.Arrays;
public class array {
public static void main(String[] args) {
int[] arr = new int[]{ 2,3,5,6 };
System.out.println(Arrays.toString(arr));
arr = add(arr, 7);
System.out.println(Arrays.toString(arr));
}
public static int[] add(int[] arr , int k ){
//方法Arrays.toString(arr); 快速查看数组元素
int[] arr2 = new int[arr.length+1];
for(int i = 0 ; i<arr.length; i++){
arr2[i]=arr[i];
}
arr2[arr.length] = k ;
arr=arr2 ;
return arr ;
}
}
2.删除数组中元素
package math;
import java.util.Arrays;
public class array {
public static void main(String[] args) {
int[] arr = new int[]{ 2,3,5,6 };
System.out.println(Arrays.toString(arr));
arr = delete(arr, 2);
System.out.println(Arrays.toString(arr));
}
public static int[] delete(int[] arr , int index){
//index是想删除位置的索引
if(index>=0&&index<arr.length){
int[] arr2 = new int[arr.length-1];
//只需要遍历新数组长度即可
for(int i = 0 ; i<arr.length-1; i++){
if(i<index){
arr2[i]=arr[i];
}else{
arr2[i]= arr[i+1];
}
}
arr= arr2 ;
return arr ;
}
return arr ;
}
}
3.面向对象的数组
package math;
import java.util.Arrays;
public class objectarray {
int[] elements = new int[0];
//向数组中添加元素
public void add(int k){
int[] newarr = new int[elements.length+1];
for(int i = 0 ; i<elements.length; i++){
newarr[i]=elements[i];
}
newarr[elements.length]= k ;
elements = newarr ;
}
//查看数组
public void show(){
System.out.println(Arrays.toString(elements));
}
//删除指定位置
public void delete(int index){
if(index<0&&index>elements.length-1){
throw new RuntimeException("下标越界");
}
int[] newarr = new int[elements.length-1];
//只需要遍历新数组长度即可
for(int i = 0 ; i<elements.length-1; i++){
if(i<index){
newarr[i]=elements[i];
}else{
newarr[i]= elements[i+1];
}
}
elements=newarr ;
}
//插入元素到指定位置
public void insert(int index , int k){
if(index<0&&index>elements.length-1){
throw new RuntimeException("下标越界");
}
int[] newarr = new int[elements.length+1];
for(int i = 0 ; i<elements.length;i++){
if(i<index){
newarr[i]=elements[i];
}else{
newarr[i+1]=elements[i];
}
}
newarr[index]=k ;
elements=newarr ;
}
}