Java 数组笔记

  • 数组是用来存储一组相同数据类型数据的数据结构。

  • 数组是一种引用类型。

  • 数组的元素可以是简单数据类型数据也可以是引用类型的数据。

/*数组的两种定义方式*/
int[] arr2;
float[] arr1;
int arr3[];  //不建议
float arr4[];
  • 在数组定义中,不能指定数组的长度,而需要在数组的创建阶段来指定。

正确:int[] a;
错误:int[20] b
  • 通过new操作符来创建数组对象,指定数组的大小,给数组元素的存储分配空间。

int [] a = new int[20];
float[] b = new float[10];
String[] c = new String[5];
  • 数组的初始化

/*静态初始化*/
int[] a = {1,3,5,7,9,11};
String[] s = { 
    new String(“abc”),       
    new String(“123”),              
    new String(“xyz”)            
};
/*动态初始化*/
int[] a = new int[10];
for(int i = 0; i < 10; i++){
    a[i] = 2 * i + 1;
}

 

  • 数组的遍历

/*使用for循环遍历数组*/
int[] a = {1,3,5,7,9,11};
for(int i = 0; i < a.length; i++) {
    System.out.println(a[i]);
}
/*使用foreach循环遍历数组*/
int[] a = {1,3,5,7,9,11};
for (int i : a) {
    System.out.println(i);      //输出1,3,5,7,9
}

排序

  • 冒泡排序

    冒泡排序是稳定的排序算法

/**
 * 对数组进行冒泡排序
 */
public void MaoPaoSort_1(int[] arr) {
    for (int i = 0; i < arr.length; i ++) {
        for (int j = 0; j < arr.length - 1 - i; j++) {
            if (arr[j] > arr[j + 1]) {
                arr[j] = arr[j] + arr[j + 1];
                arr[j + 1] = arr[j] - arr[j + 1];
                arr[j] = arr[j] - arr[j + 1];
            }
        }
    }
    for (int i : arr) {
        System.out.print(i + " ");
    }
}
  • 快速排序

  • Arrays.sort() (快速排序)

数组拷贝

  • System.arraycopy(src, srcPos, dest, destPos, length)

    将src数组里从索引为srcPos的元素开始, 复制到数组dest里的索引为destPos的位置, 复制的元素个数为length个。

int[] array = {1,3,5,7,9};
int[] array2 = new int[array.length];
/*将array数组里从索引为1的元素开始, 复制到数组array2里的索引为1的位置, 复制的元素个数为3个。 */     
System.arraycopy(array, 1, array2, 1, 3);  //复制后array2为 0,3,5,7,0

数组扩充

int[] arr = {1,2,3,4,5,6};
int[] temp = new int[arr.length + 4];
System.arraycopy(arr, 0, temp, 0, arr.length);
​
arr = temp;
​
for (int i : temp) {
    System.out.print(i + " ");
}

ArrayList

ArrayList arr = new ArrayList();    //定义数组
arr.add(1001);
arr.add(1002);
arr.add(1003);
arr.add("Tunny");
arr.add("delect");
arr.add('男');
arr.add('女');
​
arr.set(3, 1004);       //插入元素
arr.remove(5);          
​
for (int i = 0; i < arr.size(); i++) {
    System.out.print(arr.get(i) + " ");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值