Java 将数组排序为偶数和奇数
我编写了一个程序,使用ArrayList类将数组排序为奇数和偶数,但是当我试图通过display方法显示两个ArrayList时,没有输出。 注意:-当我尝试在分类方法中显示它们时,一切都很顺利。 这是我的班级Java 将数组排序为偶数和奇数,java,arrays,arraylist,static,Java,Arrays,Arraylist,Static,我编写了一个程序,使用ArrayList类将数组排序为奇数和偶数,但是当我试图通过display方法显示两个ArrayList时,没有输出。 注意:-当我尝试在分类方法中显示它们时,一切都很顺利。 这是我的班级 import java.util.*; public class SortNumbers{ private static int[] array = {8,78,20,3,27,30,45,25,14}; private static List<Integer>
import java.util.*;
public class SortNumbers{
private static int[] array = {8,78,20,3,27,30,45,25,14};
private static List<Integer> even = new ArrayList<>();
private static List<Integer> odd = new ArrayList<>();
public static void classify(int[] arr, List even , List odd){
even = new ArrayList<Integer>();
odd = new ArrayList<Integer>();
for(int i = 0 ; i < arr.length ; i++){
if(arr[i] % 2 == 0)
even.add(arr[i]);
else
odd.add(arr[i]);
}
}
public static void display(List<Integer> list){
for(Integer i : list)
System.out.println(i);
}
public static void main(String[] args){
classify(array,even,odd);
display(even);
}
}
import java.util.*;
公共类分类号{
私有静态int[]数组={8,78,20,3,27,30,45,25,14};
私有静态列表偶数=新的ArrayList();
私有静态列表奇数=新ArrayList();
公共静态无效分类(int[]arr,列表偶数,列表奇数){
偶数=新的ArrayList();
奇数=新的ArrayList();
对于(int i=0;i
我无法找出原因???这是因为您的
甚至列表是空的:您在分类中创建了一个局部变量,它隐藏了静态字段
只需删除:
even = new ArrayList<Integer>();
odd = new ArrayList<Integer>();
even=newarraylist();
奇数=新的ArrayList();
从您的分类方法中。这是因为您的偶
列表为空:您在分类
中创建了一个局部变量,它隐藏了静态字段
只需删除:
even = new ArrayList<Integer>();
odd = new ArrayList<Integer>();
even=newarraylist();
奇数=新的ArrayList();
通过您的分类方法。您不需要传递数组或重新初始化它们:
import java.util.*;
public class SortNumbers{
private static int[] array = {8,78,20,3,27,30,45,25,14};
private static List<Integer> even = new ArrayList<>();
private static List<Integer> odd = new ArrayList<>();
public static void classify(){
for(int i = 0 ; i < array.length ; i++){
if(array[i] % 2 == 0)
even.add(array[i]);
else
odd.add(array[i]);
}
}
public static void display(List<Integer> list){
for(Integer i : list)
System.out.println(i);
}
public static void main(String[] args){
classify();
display(even);
}
}
import java.util.*;
公共类分类号{
私有静态int[]数组={8,78,20,3,27,30,45,25,14};
私有静态列表偶数=新的ArrayList();
私有静态列表奇数=新ArrayList();
公共静态无效分类(){
for(int i=0;i
您不需要传递数组或重新初始化它们:
import java.util.*;
public class SortNumbers{
private static int[] array = {8,78,20,3,27,30,45,25,14};
private static List<Integer> even = new ArrayList<>();
private static List<Integer> odd = new ArrayList<>();
public static void classify(){
for(int i = 0 ; i < array.length ; i++){
if(array[i] % 2 == 0)
even.add(array[i]);
else
odd.add(array[i]);
}
}
public static void display(List<Integer> list){
for(Integer i : list)
System.out.println(i);
}
public static void main(String[] args){
classify();
display(even);
}
}
import java.util.*;
公共类分类号{
私有静态int[]数组={8,78,20,3,27,30,45,25,14};
私有静态列表偶数=新的ArrayList();
私有静态列表奇数=新ArrayList();
公共静态无效分类(){
for(int i=0;i
这些是创建的具有本地引用u的本地对象,当函数在与实例成员同名的分类方法中结束时,这些对象将被销毁
偶数=新的ArrayList()
奇数=新的ArrayList()
公共静态无效分类(int[]arr、列表偶数、列表奇数){
//偶数=新ArrayList();使用与实例成员相同的名称创建本地引用
//odd=新ArrayList();使用与实例成员相同的名称创建本地引用
对于(int i=0;i
这些是创建的具有本地引用u的本地对象,当函数在与实例成员同名的分类方法中结束时,这些对象将被销毁
偶数=新的ArrayList()
奇数=新的ArrayList()
公共静态无效分类(int[]arr、列表偶数、列表奇数){
//偶数=新ArrayList();使用与实例成员相同的名称创建本地引用
//odd=新ArrayList();使用与实例成员相同的名称创建本地引用
对于(int i=0;i
您需要删除:
even = new ArrayList<Integer>();
odd = new ArrayList<Integer>();
even=newarraylist();
奇数=新的ArrayList();
和
同时从分类中删除所有参数。所以现在应该是这样的:
public static void classify(){
for(int i = 0 ; i < arr.length ; i++){
if(arr[i] % 2 == 0)
even.add(arr[i]);
else
odd.add(arr[i]);
}
}
publicstaticvoidclassify(){
对于(int i=0;i
当您试图创建本地副本时,不需要将静态参数传递到方法中。您需要删除:
even = new ArrayList<Integer>();
odd = new ArrayList<Integer>();
even=newarraylist();
奇数=新的ArrayList();
和
同时从分类中删除所有参数。所以现在应该是这样的:
public static void classify(){
for(int i = 0 ; i < arr.length ; i++){
if(arr[i] % 2 == 0)
even.add(arr[i]);
else
odd.add(arr[i]);
}
}
publicstaticvoidclassify(){
对于(int i=0;i
静态参数不需要传递到方法中,因为您正在通过尝试这样做来创建本地副本。@Mike如果您在汇编中编写代码,可能是这样的-在Java中,您可以依靠JVM来执行这种优化…刚刚意识到这是针对Java的。很抱歉,优化确实是由编译器处理的。@Mike如果您在汇编中编写代码,可能是这样的-在Java中,您可以依靠JVM来执行这种优化…只要实现就行了