Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何初始化固定大小的arrayList并将其指定为nil_Java_Arraylist - Fatal编程技术网

Java 如何初始化固定大小的arrayList并将其指定为nil

Java 如何初始化固定大小的arrayList并将其指定为nil,java,arraylist,Java,Arraylist,如何初始化固定大小的arrayList并将其分配给nil? 我在Swift/IoS中有如下代码。 以下Java代码在Java中的等价物是什么 var studentsList:[Result?] = [Result?](repeating: nil, count: 5) //assign to nil studentsList[2] = newStudent //assign at different level Eg:2 studentsList = studentsList.filter {

如何初始化固定大小的arrayList并将其分配给nil?
我在Swift/IoS中有如下代码。
以下Java代码在Java中的等价物是什么

var studentsList:[Result?] = [Result?](repeating: nil, count: 5) //assign to nil
studentsList[2] = newStudent //assign at different level Eg:2
studentsList = studentsList.filter { $0 != nil } //filter all the nil objects
我需要一个固定长度的数组。
我可以按顺序添加元素,但我需要能够在任何初始化级别添加元素。
例如,如果我将数组的大小固定为5,我应该能够将对象分配给arrList[2],即使arrList[0]和arrList[1]仍然为零

ArrayList studentList=new ArrayList(Collections.nCopies(5,null));
ArrayList<Student> studentList = new ArrayList<Student>(Collections.nCopies(5, null));
studentList.set(2, newStudent)
//studentList = studentList.stream().filter(e -> e != null)
studentList.set(2,newStudent) //studentList=studentList.stream().filter(e->e!=null)
由于您似乎正在使用Android,而streams无法工作,请使用以下选项:

ArrayList<Student> tempList = new ArrayList<>();
for(Student s : studentList) 
    if(student !=null) 
       studentList.add(student)
ArrayList tempList=new ArrayList();
对于(学生s:学生名单)
如果(学生!=null)
学生列表。添加(学生)
ArrayList studentList=新的ArrayList(Collections.nCopies(5,null));
studentList.set(2,newStudent)
//studentList=studentList.stream().filter(e->e!=null)
由于您似乎正在使用Android,而streams无法工作,请使用以下选项:

ArrayList<Student> tempList = new ArrayList<>();
for(Student s : studentList) 
    if(student !=null) 
       studentList.add(student)
ArrayList tempList=new ArrayList();
对于(学生s:学生名单)
如果(学生!=null)
学生列表。添加(学生)

给出你在评论中所说的,你可能正在寻找:

StudentList[] studentarray = new StudentList[5];
studentarray[2]= studentObj;

给出你在评论中所说的,你可能正在寻找:

StudentList[] studentarray = new StudentList[5];
studentarray[2]= studentObj;

每当创建对象类的数组时,它都是空的

Student[] students = new Student[5];
您可以分配一个索引,使其余的保持为空

students[2] = new Student();
数组大小固定,无法添加到

如果希望从数组中提取流,也可以这样做

Arrays.stream(students).filter( Objects::nonNull )

每当创建对象类的数组时,它都是空的

Student[] students = new Student[5];
您可以分配一个索引,使其余的保持为空

students[2] = new Student();
数组大小固定,无法添加到

如果希望从数组中提取流,也可以这样做

Arrays.stream(students).filter( Objects::nonNull )
试试这个

List<Student> students = Arrays.asList(new Student[fixedSize]);
List Student=Arrays.asList(新学生[fixedSize]);
这是一个列表,不是ArrayList。但是您可以修改每个元素。如果向学生添加元素,将引发异常。

尝试此操作

List<Student> students = Arrays.asList(new Student[fixedSize]);
List Student=Arrays.asList(新学生[fixedSize]);

这是一个列表,不是ArrayList。但是您可以修改每个元素。如果您向
学生
添加元素,将引发异常。

我根据发布的建议使用以下代码解决了此问题

Student[] studentList = new SchoolItem[5];

ArrayList<Student> sortedList = new ArrayList<>();

compareList[2] = new Student();

for( Student s : compareList) {
       if(s !=null)
       sortedList.add(s); }
Student[]studentList=新的学校项目[5];
ArrayList sortedList=新建ArrayList();
比较列表[2]=新学生();
对于(学生s:比较列表){
如果(s!=null)
sortedList.add(s);}

我根据发布的建议使用以下代码解决了问题

Student[] studentList = new SchoolItem[5];

ArrayList<Student> sortedList = new ArrayList<>();

compareList[2] = new Student();

for( Student s : compareList) {
       if(s !=null)
       sortedList.add(s); }
Student[]studentList=新的学校项目[5];
ArrayList sortedList=新建ArrayList();
比较列表[2]=新学生();
对于(学生s:比较列表){
如果(s!=null)
sortedList.add(s);}


在英语中,你想在这里做什么,更重要的是——为什么?你说的“赋值为零”是什么意思?你想用一定数量的
null
s填充数组吗?我想你的意思是你想要一个固定大小的数组,而不是一个ArrayList@DontKnowMuchButGettingBetternil在中为空swift@CupofJava当前位置我也这么想,但整个事情仍然有XY问题的味道,这就是为什么为什么为什么为什么如此重要。用英语,你想在这里做什么,更重要的是——为什么?你说的“赋值为零”是什么意思?你想用一定数量的
null
s填充数组吗?我想你的意思是你想要一个固定大小的数组,而不是一个ArrayList@DontKnowMuchButGettingBetternil在中为空swift@CupofJava:我也计算了很多,但整个问题仍然有XY问题的味道,这就是为什么为什么为什么为什么如此重要。最后一个命令显示了一个错误。无法解析在流上悬停的方法“stream”,并且对象的“此语言级别不支持方法引用::nonNull最后一个命令在Android上不起作用,因此必须寻求替代解决方案。前两个命令很好,Java8特性正在添加中。您的问题没有用android标记。您还可以使用RxJava,这是一个有趣的库,可以用最后一个命令显示错误来包装android代码。无法解析在流上悬停的方法“stream”,并且对象的“此语言级别不支持方法引用::nonNull最后一个命令在Android上不起作用,因此必须寻求替代解决方案。前两个命令很好,Java8特性正在添加中。您的问题没有用android标记。您还可以使用RxJava,这是一个有趣的库,可以用最后一个命令显示错误来包装android代码。无法解析在流上悬停的方法'stream',并且(e->e!=null)@dacscan3669的'Lambda表达式在此语言级别不受支持'。我假设您当时正在为Android编程。流是在Java8中添加的,因此它们在所有android系统中都不可用versions@dacscan3669相反,如果(Student!=null)templast.add(Student)@dacscan3669我的答案对你有帮助,如果你能接受我的答案,我将不胜感激(通过按下上面的绿色复选框)。快乐编码:)最后一个命令显示错误。无法解析在流上悬停的方法'stream',并且(e->e!=null)@dacscan3669的'Lambda表达式在此语言级别不受支持'。我假设您当时正在为Android编程。流是在Java8中添加的,因此它们在所有android系统中都不可用versions@dacscan3669相反,如果(Student!=null)templast.add(Student)@dacscan3669我的答案对你有帮助,如果你能接受我的答案,我将不胜感激(通过按下上面的绿色复选框)。快乐编码:)