一、题目描述

二、解题思路
1.遍历数组判断当前数字是否为质数,质数加入返回ArrayList中(注意:1 既不是质数也不是合数!)
2.对筛选出来的数字进行排序,这里练习一下ArrayList的sort方法,比较函数使用传入一个匿名类对象的方式。
3.将ArrayList对象转化为 int[] 对象返回。(可以采用遍历方式,也可以使用api实现,这里我们使用api练习一下)
三、代码实现
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param trees int整型一维数组
* @return int整型一维数组
*/
public int[] primeFruits (int[] trees) {
ArrayList<Integer> resarr=new ArrayList<>();
// 先找到质数
for(int i=0;i<trees.length;i++){
if(isPrimeNum((trees[i]))){
resarr.add(trees[i]);
}
}
//然后再对这些质数进行排序(传入匿名类升序排序)
resarr.sort(new Comparator<Integer>(){
@Override
public int compare(Integer a,Integer b){
return a-b;
}
});
//将ArrayList转化为int[],除了遍历以外可以用下列方式
int[] resints=resarr.stream().mapToInt(k->k).toArray();
return resints;
}
public static boolean isPrimeNum(int num){
boolean res=true;
if(num==1){//注意:1既不是质数也不是合数!!!
return false;
}else if(num==2){
res=true;
}else{
for(int i=2;i<num;i++){
if(num%i==0){
res=false;
break;
}
}
}
return res;
}
}
2019

被折叠的 条评论
为什么被折叠?



