当前位置:   article > 正文

【java】数组相关知识点汇总_arrays.setall byte

arrays.setall byte

获得数组中的最小值/最大值/和

Arrays.stream(cnt).min().getAsInt();
Arrays.stream(cnt).max().getAsInt();
Arrays.stream(cnt).sum();
  • 1
  • 2
  • 3

另附加cpp

*min_element(cnt.begin(), cnt.end());
  • 1

List转数组的方法/数组转List

必须是引用类型数组才可以。(基础数据类型的数组不可以)

Java除了基础数据类型就都是引用类型了。

ans.toArray(new String[ans.size()]);	// list转arr
  • 1

Java中数组转List的四种方式 这篇文章写的还蛮好的

// 1.这种方式仅能用在将数组转换为List后,不需要增删其中的值,仅作为数据源读取使用。
List<Integer> asList = Arrays.asList(2, 3, 4, 5, 6, 1);	// arr转list.同样需要是引用类型

// 2.使用ArrayList的构造器接收一下,就可以正常使用了
ArrayList<String> strings = new ArrayList<>(Arrays.asList(str));

// 3.根据数组的长度创建一个长度相同的List,然后使用Collectioins.addAll()方法
// 这种方法 (最高效)
Integer[] a = {1, 2, 3, 4};	// 注意数组同样需要是引用类型
List<Integer> ls = new ArrayList<>(a.length);
Collections.addAll(ls, a);

// 4.如果是基本数据类型的数组,使用如下方法
int[] a = {1, 2, 3, 4};
List<Integer> ls = Arrays.stream(a).boxed().collect(Collectors.toList());
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

.boxed():Java 中的 .boxed() 方法是一个流(stream)操作,它可以将一个原始类型(primitive type)的流转换为一个装箱类型(boxed type)的流。例如,IntStream.boxed() 可以将一个 int 类型的流转换为一个 Integer 类型的流。这样可以方便地使用一些对象方法,如 equals, hashCode, toString 等。
.collect():Java 中的 .collect() 方法是一个终止操作(terminal operation),它可以将一个流(stream)中的元素转换为一个集合(collection)或者一个值(value)。.collect() 方法需要一个收集器(collector)作为参数,收集器是一个实现了 Collector 接口的对象,它定义了如何对流中的元素进行规约(reduction)操作。

数组求和

numSum = Arrays.stream(nums).sum()
  • 1

数组复制

https://www.apiref.com/java11-zh/java.base/java/lang/System.html#arraycopy(java.lang.Object,int,java.lang.Object,int,int)

System.arraycopy(nums, 0, cost, 0, n);
  • 1

或者

Integer[] newArr = Arrays.copyOf(arr, arr.length);
Integer[] newArr = Arrays.copyOf(arr, arr.length + 1);	// 超出arr.length的部分会补0/null
  • 1
  • 2

查找指定元素的位置

已经排好序的数组(Arrays.binarySearch)

让 java 使用二分查找的方式来查找指定的元素。(要求数组已经是排好序了的)

int[] arr = {1, 2, 3, 90, 123, 567};
int index = Arrays.binarySearch(arr, 98);
// 如果不存在,返回-(low + 1) low是应该存在的位置
System.out.println("index=" + index);
  • 1
  • 2
  • 3
  • 4

打印数组

System.out.println(Arrays.toString(integers));
  • 1

判断两个数组元素内容是否完全一致

boolean equals = Arrays.equals(arr, newArr);
  • 1

Arrays.fill()和Arrays.setAll()

Arrays.fill(a, 1);	// 将所有元素设置为1
Arrays.setAll(a, i -> -nums[i]);	// 其中i是索引,表示将所有元素取反;
Arrays.setAll(a, e-> new ArrayList());	// 将所有元素设置成一个空列表
  • 1
  • 2
  • 3

引用类型数组和泛型

在这里插入图片描述
声明成如下是可以的:

List<Integer>[] g = new ArrayList[];
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/782737
推荐阅读
相关标签
  

闽ICP备14008679号