从arraylist JAVA打印具有bool true的对象

从arraylist JAVA打印具有bool true的对象,java,arraylist,boolean,Java,Arraylist,Boolean,getArrayStringListFalse方法应使用bool false打印出对象 getArrayStringListTrue方法应该对boolTrue对象执行相同的操作 import java.util.*; public class Issue { private static ArrayList<newIssue> list = new ArrayList<>(); public static ArrayList<newIssue> ge

getArrayStringListFalse方法应使用bool false打印出对象

getArrayStringListTrue方法应该对boolTrue对象执行相同的操作

import java.util.*;


public class Issue {

private static ArrayList<newIssue> list = new ArrayList<>();


public static ArrayList<newIssue> getArrayStringListFalse(){

    for(int i = 0; i < list.size();i++){
        if (!list.get(i).returned){
            System.out.println("["+"["+i+"] "+list.get(i)+"]");
        }else {
            System.out.println("You have no unsolved issues!");
        };
    };
    return null;
}

public static ArrayList<newIssue> getArrayStringListTrue(){

    for(int i = 0; i < list.size();i++){
        if (list.get(i).returned){
            System.out.println("["+"["+i+"] "+list.get(i)+"]");
        }else {
            System.out.println("You have no solved issues!");
        };
    };
    return null;
}



public static void removeIssue(){
    for (int i = 0; i<list.size(); i++){;
        System.out.println("["+"["+i+"] "+list.get(i)+"]");
    }
    Scanner scan = new Scanner(System.in);
    System.out.println("Which one would you like to mark as solved?");
    int choice = scan.nextInt();
    newIssue issue = list.get(choice);
    issue.returned = true;
}

public static void addIssue(){
    System.out.println("---Create a new issue---");
    System.out.println("Describe the issue: ");
    Scanner scan = new Scanner(System.in);
    String text= scan.nextLine();
    newIssue issue = new newIssue(text);
    list.add(issue);
}
}

您可以这样修改:

public static ArrayList<newIssue> getArrayStringListFalse(){
boolean flag=false;
for(int i = 0; i < list.size();i++){
    if (!list.get(i).returned){
        System.out.println("["+"["+i+"] "+list.get(i)+"]");
        flag = true;
    }
}
if(!flag){
    System.out.println("You have no unsolved issues!");
}
return null;
}

public static ArrayList<newIssue> getArrayStringListTrue(){
boolean flag=false;
for(int i = 0; i < list.size();i++){
    if (list.get(i).returned){
        System.out.println("["+"["+i+"] "+list.get(i)+"]");
        flag = true;
    }
}
if(!flag){
        System.out.println("You have no solved issues!");
};
return null;
}
公共静态ArrayList getArrayStringListFalse(){
布尔标志=假;
对于(int i=0;i
如果可以使用
java-8
steams
,则可以大大简化:

// print all elements with returned == true    
list.stream().filter(i -> i.returned).forEach(System.out::println);


删除
else
case如果您想打印“您没有解决的问题!”的消息,那么您不能在循环内这样做,而是必须在循环本身中没有匹配数据时在循环后这样做。a)阅读java命名约定-类名大写-始终。B) 首先重新考虑您的命名:方法名应该告诉您该方法在做什么。你必须解释这个方法在做什么(即使有这样的解释,整个事情也没有多大意义)?你看:要么一个方法应该有一个结果,然后你返回一个实值;如果没有结果,则该方法应无效。在您的例子中:为什么不返回那些符合特定条件的元素的子列表?然后,不在那里打印东西,而是先收集这些子列表,然后将列表传递给一个通用的“打印方法”,它只知道如何打印东西?提示:一个方法应该有一个职责。不是两个,不是三个。一个!谢谢您知道为什么它会在后面将对象+布尔打印为字符串吗?这是因为您有返回issueText+returned的to string方法。您可以将其更改为要打印的任何内容。如果需要空格或冒号分隔问题字符串和布尔值,请尝试:return issueText+“:”+returned@基尔这么做是因为你就是这样编程你的
toString()
方法的!使用System.out.println打印对象时,默认情况下会调用此方法。如果要打印其他内容,请更改
toString()
方法或编程手册使用其他方法打印所需内容。
// print all elements with returned == true    
list.stream().filter(i -> i.returned).forEach(System.out::println);
// print all elements with returned == false    
list.stream().filter(i -> !i.returned).forEach(System.out::println);