java集合(6)——数组工具类Arrays

本文介绍如何使用Java的Arrays工具类进行数组与集合的转换、数组比较、填充、搜索、复制及排序等操作,并提供示例代码。

使用Arrays工具类,要先导入包即:import.java.util.Arrays

数组变集合:

List list=Arrays.asList(arr);

数组转化为List之后很多list的方法,包括contains、get、sublist,都可以用,但是增加和删除方法不能用,因为底层仍然是数组

集合变数组:

    String[] arr=al.toArray(new al.size());

以下是实现六种功能的方法:

1、比较两个数组值是否相等: 结果为truefalse.(布尔型不能比较)

   int []a={10,20,30};

   int []b={10,20,30};

   int []c={1,2,3};

boolean isEqual=Arrays.equals(a,b);

   System.out.println(isEqual);

   System.out.println(Arrays.equals(a,c));

//如果是字符串:

String[]s1={“ab”,”c”,”d”,”e”};

Arrays.sort(s1);

For(String s:s1){

     System.out.println(s);

}

2fill方法:把整个数组里的每一个元素的值进行替换为val。(void fill(Arrays,val)

 

3BinarySearch:找到元素在数组当中的下标。

String[]s3={“a”,”b”,”c”,”d”,”e”,”w”};

Int index=Arrays.binarySearch(s3,”g”);

     System.out.println(“该元素的下标是:”+index);

 

4toString方法是把数组转换成字符串进行输出。(参数是数组,返回的是字符串)

int[] a1={1,2,3,4};

   System.out.println(Arrays.toString(a1));

即:【 String s1=Arrays.toString(a1);

   System.out.println(s1);】

5、copyof把一个数组复制出一个新数组(新数组的长度为length

int[]ints1={11,22,33,44};

int[]ints2=Arrays.coypOf(ints1,2);

System.out.println(Arrays.toString(ints2));

6、sort方法,把数组中的元素按升序排序。【参数:除了布尔型都可以,类也可以】

例,输入六个数字,实现正序排列和倒序排列,并求其数字和

     Scanner input = new Scanner(System.in);

int[] score=new int[6];

int sum=0;

//让用户输入6个数字

for(int i=0;i<score.length;i++){

System.out.println("请输入第"+(i+1)+"个数字");

score[i]=input.nextInt();

sum+=score[i];

}

//sort:从小到大排序

Arrays.sort(score);

for(int i:score){

System.out.println(i);

}  

//sort:从大到小排序

Arrays.sort(score);

for(int i=score.length-1;i>=0;i--){

 System.out.println(score[i]);

}

System.out.println(sum);

### Java数组求和的方法 在 Java 编程语言中,可以通过多种方式来实现数组元素的求和操作。以下是几种常见的方法及其对应的代码示例。 #### 使用增强型 `for` 循环 通过增强型 `for` 循环可以方便地遍历数组并累加其元素值。这种方法简单直观,易于理解。 ```java public class ArraySumExample { public static void main(String[] args) { int[] numbers = { 2, 4, 6, 8, 10 }; int sum = 0; for (int num : numbers) { sum += num; } System.out.println("数组元素之和为:" + sum); } } ``` 上述代码展示了如何利用增强型 `for` 循环完成整数数组的求和操作[^1]。 #### 使用传统 `for` 循环 如果需要更多的控制权或者处理的是浮点数类型的数组,则可以选择传统的索引访问方式进行求和。 ```java public class Java265TestArray{ public static void main(String[] args) { double[] myList = {8,9,1,2,3,3}; double total = 0; for (int i = 0; i < myList.length; i++) { total += myList[i]; } System.out.println("数组之和: " + total); } } ``` 此段代码说明了当面对双精度浮点数类型的数据时,采用标准循环结构同样能够有效达成目标[^2]。 #### 利用递归机制 对于喜欢挑战不同算法思路的人来说,还可以尝试运用递归来解决这一问题。下面给出两种不同的递归解决方案: ##### 方案一 定义了一个类成员变量用于存储累积的结果,在每次调用过程中更新当前数值直到达到终止条件为止。 ```java package com.smbea.demo; public class Student { private int sum = 0; /** * 递归求和 * @param num 当前待处理数字 */ public void sum(int num) { this.sum += num--; if(0 < num){ sum(num); } else { System.out.println("sum = " + sum); } } public static void main(String[] args) { new Student().sum(5); // 测试输入参数为5的情况 } } ``` 该实例体现了基本形式下的递归逻辑设计[^3]。 ##### 方案二 另一种更为通用的形式如下所示: ```java package com.smbea; public class RecursiveSum { public static int recursiveSum(int[] array, int index) { if(index >= array.length){ return 0; } return array[index] + recursiveSum(array, ++index); } public static void main(String[] args) { int[] data = {1,2,3,4,5}; System.out.println(recursiveSum(data, 0)); } } ``` 这段程序提供了一种更加灵活且可扩展性强的方式来进行数组求和运算。 #### Stream API 结合 Reduce 函数 自 JDK 8 起引入的功能强大的流式编程接口——Stream API 提供了许多便捷的操作符其中就包括 reduce() 方法可用于简化集合数据上的聚合计算过程比如求数组所有项相加之结果等场景下非常适用. ```java import java.util.Arrays; public class SumWithReduce { public static void main(String[] args) { Integer[] nums = {1, 2, 3, 4, 5}; // 使用reduce函数进行求和 int result = Arrays.stream(nums).reduce(0,(subtotal, element)-> subtotal+element); System.out.println(result); } } ``` 这里展现了现代Java版本里推荐使用的高效简洁写法之一即借助于Streams框架内部封装好的工具集轻松搞定原本复杂的业务需求同时还能兼顾性能表现方面的要求[^4].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值