编写一个程序,创建一个大小为7的整数数组,其中包含以下值:
{31, 24, 65, 41, 13, 22, 76}
然后,程序应显示数组中的所有项目 仅大于45。
它不会显示大于45的数字
import java.util.Arrays;
import java.util.ArrayList;
public class ArrayToArrayList {
public static void func1(int arr[]) {
ArrayList<Integer> array_list = new ArrayList<Integer>();
for (int i = 0; i < arr.length; i++)
array_list.add(new Integer(arr[i]));
System.out.print(array_list);
}
public static void main(String[] args) {
int array[] = { 31, 24, 65, 41, 13, 22, 76 };
func1(array);
}
}
答案 0 :(得分:3)
这是一个非常简单的任务。
public static void main (String[] args) {
int array[] = { 31, 24, 65, 41, 13,22,76 };
Arrays.stream(array).filter(i -> i > 45).forEach(System.out::println);
}
或者如果您不想使用流:
for (int i : array) {
if (i > 45) { // filter all elements lower or equal to 45
System.out.println(i);
}
}
我建议您更加努力地学习,因为这很基础。
答案 1 :(得分:1)
int[] d = { 31, 24, 65, 41, 13,22,76 };
ArrayList<Int> resultList = Arrays.stream(d).filter(x -> x > 45).toArray();
resultList.forEach(System.out::println);
答案 2 :(得分:1)
考虑到您只是初学者,所以不想使用所有高级Java功能来吓you您。
尽管所有答案都是可以自我解释和有效的,但对于初学者来说,可能要花一些时间。
对于初学者,代码可以写成一行或您可以理解的行。
您可以简单地过滤出大于45的值
public class ArrayToArrayList
{
public static void func1(int arr[])
{
ArrayList<Integer> array_list = new ArrayList<Integer>();
for (int i = 0; i < arr.length; i++) {
array_list.add(new Integer(arr[i])); }
for(int j=0; j<array_list.size() ; j++){
if(array_list.indexOf(j) < 45){
array_list.remove(j);
}
}
System.out.print(array_list);
}
public static void main(String[] args)
{
int array[] = { 31, 24, 65, 41, 13, 22, 76 };
func1(array);
}
}
答案 3 :(得分:-1)
@Erwin: 我无法在您的代码中的任何地方看到以45为单位比较array的值。 除非另外需要,否则无需在ArrayList中添加值。 只需sysout,将@Stephan
建议的那些值放在数组循环的45内