Arrays数组操作,很详细

线性数据结构线程安全
[]固定大小、通过索引直接查询数组中的元素O(1)、无法删除插入、只能更新Array 创建数组,Arrays.copyOf复制扩容
ArrayList implements List动态大小、通过索引直接查询数组中的元素O(1)、插入和删除需要移动其他元素评价O(n)、初始容量0,元素超出每次扩容50%,频繁add效率较高
Vector implements ListVector的初始容量是10,初始容量10,每次扩容10,为了避免重复扩容,设置足够大的容量
// 输入原来的数组 加 长度,得到新的数组,扩容,copyOfRange from 1 to 2 只会返回这个下标间的新数组
	Arrays.copyOf(T[] original, int newLength)
  Arrays.copyOfRange(T[] original, int from, int to)
   
  // 为每个元素,用指定二元操作符计算 numbers = {1, 2, 3, 4, 5};结果numbers = {1, 2, 6, 24, 120};
  Arrays.parallelPrefix(numbers,(x,y) -> x * y)
    
  // 二分查询元素,返回下标 , a = {1, 2, 3, 4, 5},key = 3,返回 2
  Arrays.binarySearch(int[] a, int key);
	
	// 排序,parallelSort()会在多个线程中执行,适用大数据,使用需实现Comparable,或者实现cmp比较器
	Arrays.parallelSort(Object[] array, Comparator cmp); 
  Arrays.sort(Object[] array, Comparator cmp);

	// 使用Spliterator工具类并行处理数据,适用大数据
	Arrays.spliterator(T[] array)
    
  // setAll和fill都是填充,前者带下标,可以根据下标设置不同值。fill返回 new String[2]{"A","A"},
  // setAll 返回 [0, 1, 4, 9, 16]
  Arrays.fill(new String[2], "A"));
  Arrays.setAll(new int[5], i -> i * i);
	
	// Java9特性 两个类似数据数组比较大小 
  Arrays.compare(int[] a, int[] b)
    
  // Java9特性 两个类似数组不同元素的下标arr1 = {1, 2, 3};arr2 = {1, 2, 4};返回下标:2
	Arrays.mismatch(arr1, arr2);



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值