从arraylist JAVA打印具有bool true的对象
getArrayStringListFalse方法应使用bool false打印出对象 getArrayStringListTrue方法应该对boolTrue对象执行相同的操作从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
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);