Java数组常用操作

1.创建数组的4种方式

//Four solutions to create an array in Java
//Take [1,2,3] as example
//Solution 1
int[] a = {1,2,3};
System.out.println("a: "+Arrays.toString(a));
//Solution 2
int[] b = new int[]{1,2,3};
//Solution 3
int[] c = new int[3];
for(int i = 0; i < a.length; i++) {
    c[i] = i+1;
}
System.out.println("c: "+Arrays.toString(c));
//Solution 4
ArrayList<Integer> arr = new ArrayList<>();
for(int i = 0; i < 3; i++) {
    arr.add(i+1);
}
//[1,2,3]
System.out.println("arr:"+arr.toString());

2.添加元素(适合上述Solution 4使用)

// Add element
// Time Complexity:O(1)
arr.add(99);
// [1,2,3,99]
System.out.println("arr: "+arr.toString());
// Insert element
// Time Complexity:O(N)
arr.add(3, 88);
// [1,2,3,88,99]
System.out.println("arr: "+arr.toString());

3.访问元素,通过下标(索引)访问

// Access element
// Time Complexity: O(1)
int c1 = c[1];
int arr1 = arr.get(1);
// 1
System.out.println("c1: "+c1);
System.out.println("arr1: "+arr1);

4.更新元素

// Update element
// Time Complexity: O(1)
c[1] = 11;
arr.set(1, 11);
// 1 -> 11
System.out.println("c1: "+c[1]);
System.out.println("arr1: "+arr.get(1));

5.删除元素

// Remove element
// Time Complexity:O(N)
arr.remove(3);
System.out.println("arr1: "+arr.get(1));

6.数组长度

在创建数组的时候,Java内部会形成一个count计算数组的大小,要获得数组大小的时候,计算机会直接取到count的值,而不是再遍历一遍,所以时间复杂度是O(1)。

// The length of an array
// Time Complexity:0(1)
int cSize = c.length
int arrSize = arr.size();
System.out.println("c length: "+cSize);
System.out.println("arr length: "+arrSize);

7.遍历数组

// Iterate an array
// Time Complexity: O(N)
// Iterate c
for (int i = 0; i < c.length; i++) {
    int current = c[i];
    System.out.println("c at index "+i+": "+current);
}
// Iterate arr
for (int i = 0; i < arr.size(); i++) {
    int current = arr.get(i);
    System.out.println("arr at index "+i+": "+current);
}

8.查找元素

// Find an element
// Time Complexity: O(N)
// Find an element in c
for (int i = 0; i < c.length; i++) {
    if (c[i] == 99) {
        System.out.println("We found 99 in c!");
    }
}
// Find an element in arr
boolean is99 = arr.contains(99);
System.out.println("Are we found 99 in arr? "+is99);

9.数组排序

// Sort an array by built-in lib
c = new int[]{2,3,1};
arr = new ArrayList<>();
arr.add(2);
arr.add(3);
arr.add(1);
// [2,3,1]
System.out.println("c: "+Arrays.toString(c));
System.out.println("arr: "+arr.toString());
// from small to big
// Time complexity: O(NlogN)
Arrays.sort(c);
// [1,2,3]
System.out.println("c: "+Arrays.toString(c));
Collections.sort(arr);
System.out.println("arr: "+arr);
// From big to small
// Time complexity: O(NlogN)
// For c, you can read an array in reverse
// Arrays.sort(T[], Collections.reverseOrder());
// For arr
Collections.sort(arr, Collections.reverseOrder());
// [3,2,1]
System.out.println("arr: "+arr);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

返京列车。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值