Java 是否在另一个arraylist中列出arraylist项?
我只是用了这个Java 是否在另一个arraylist中列出arraylist项?,java,arraylist,Java,Arraylist,我只是用了这个 ArrayList list=new ArrayList() 方法,而输出并不是我想要的方式 我试着列出不同学生的名单,并按他们在哪个年级进行分类。但是,我也在尝试创建一个列表,显示所有学生,无论他们的年级如何。这就是我使用的代码: ArrayList <ArrayList<String>> allStudents = new ArrayList<ArrayList<String>>(); ArrayList <String&
ArrayList list=new ArrayList()代码>
方法,而输出并不是我想要的方式
我试着列出不同学生的名单,并按他们在哪个年级进行分类。但是,我也在尝试创建一个列表,显示所有学生,无论他们的年级如何。这就是我使用的代码:
ArrayList <ArrayList<String>> allStudents = new ArrayList<ArrayList<String>>();
ArrayList <String> gradeNines = new ArrayList();
ArrayList <String> gradeTens = new ArrayList();
ArrayList <String> gradeElevens = new ArrayList();
ArrayList <String> gradeTwelves = new ArrayList();
boolean firstSelection = true;
public void grade(String a, String b, ArrayList c)
{
a = jComboBox1.getSelectedItem() + "";
if (a.equals(b))
{
studentOutput.setText("");
int x = 0;
for (int indexNum = 0; indexNum < c.size(); indexNum++)
{
x = indexNum + 1;
studentOutput.append(num + ". " + c.get(indexNum) + "\n");
}
}
}
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {
String studentGrade = jComboBox1.getSelectedItem() + "";
String all = "All Grades";
String nine = "Grade Nine";
String ten = "Grade Ten";
String eleven = "Grade Eleven";
String twelve = "Grade Twelve";
if (firstSelection)
{
Collections.addAll(allStudents, gradeNines, gradeTens, gradeElevens, gradeTwelves);
Collections.addAll(gradeNines, "Oscar", "Justin",....);
Collections.addAll(gradeTens, "Austin", "Jacob", "Evie"....);
Collections.addAll(gradeElevens, "Olivia", "Elizabeth"...);
Collections.addAll(gradeTwelves, "Ryan", "Jade"...);
firstSelection = false;
}
grade(studentGrade, all, allStudents);
grade(studentGrade, nine, gradeNines);
grade(studentGrade, ten, gradeTens);
grade(studentGrade, eleven, gradeElevens);
grade(studentGrade, twelve, gradeTwelves);
ArrayList allStudents=new ArrayList();
ArrayList gradeNines=新的ArrayList();
ArrayList gradeTens=新的ArrayList();
ArrayList gradeElevens=新的ArrayList();
ArrayList GradeTweves=新的ArrayList();
布尔值firstSelection=true;
公共空隙等级(字符串a、字符串b、阵列列表c)
{
a=jcombox1.getSelectedItem()+“”;
如果(a等于(b))
{
studentOutput.setText(“”);
int x=0;
对于(int indexNum=0;indexNum
但从输出的方式来看,它就像:
[Oscar,Justin]2[Austin,Jacob,Evie]3[Olivia,Elizabeth]4[Ryan,Jade]
是否有一种方法可以使其输出,从而单独显示每个名称,如:
奥斯卡2.贾斯汀3.奥斯汀4.雅各布
首先,使用Map
(HashMap或有序实现)可以更好地处理这些类型的“分组”问题。
你可以把分数作为键,把学生姓名列表作为值。这比嵌套的数组列表更容易处理集合数据
关于你的问题,
是否有一种方法可以使其输出,从而单独显示每个名称
不可以。这些是单独的ArrayList。您需要显式地将它们添加/显示在一起
此外,我建议您在Java8中使用Streams
的groupingBy
函数。这将非常适合您的用例
使用流
,您可以选择将所有项目显示在一起,或按等级将其分组,并根据所选的类别(等级)进行显示
看到这个答案:您是否将所有的ArrayList
值设置为studentOutput
?您可以使用嵌套循环获得所需的输出,因为allStudents
是ArrayList的