Итак, в основном я пытаюсь распечатать все значения из массива, которые меньше или больше, чем введенное пользователем значение.
Например, если я введу «500», он напечатает все значения, которые меньше этого, и тогда я смогу сделать то же самое для больших значений.
Как мне идти вперед с этим? В настоящее время он использует поток для печати значений, которые меньше или больше, чем «30»
В настоящее время я пробовал несколько методов, таких как использование совершенно новой переменной значения для введенного пользователем значения. Мне трудно представить, как двигаться дальше.
Я также пытался использовать цикл for для создания всей системы, но обнаружил, что он не работает должным образом, поэтому я рекомендовал использовать .stream вместо этого.
Основной класс
import java.util.Scanner;
public class MainClass {
public static void main( String [] args ) {
Scanner sc = new Scanner( System.in );
Container list = new Container();
System.out.println("Enter amount (1-5)");
int count = sc.nextInt();
sc.nextLine();
for (int i = 0; i < count; i++) {
System.out.println("Enter Type");
String type = sc.nextLine();
System.out.println("Enter Type2");
String type2 = sc.nextLine();
System.out.println("Enter value");
int value = sc.nextInt();
sc.nextLine();
MoreInfo moreInfo = new MoreInfo(type, type2);
Info info = new Info(moreInfo, value);
list.Add(info);
}
list.PrintAll();
System.out.println("Smaller than 30");
list.PrintSmaller();
System.out.println("Larger than 30");
list.PrintLarger();
}
}
Контейнерный класс, который содержит методы для min и max
Эти методы можно найти снизу класса
import java.util.ArrayList;
import java.util.Iterator;
public class Container {
private MoreInfo moreInfo;
public ArrayList <Info> InfoArray;
public Container() {
InfoArray = new ArrayList <Info>();
this.setMoreInfo(moreInfo);
}
public MoreInfo getMoreInfo() {
return moreInfo;
}
public void setMoreInfo(MoreInfo moreInfo) {
this.moreInfo = moreInfo;
}
public boolean Add(Info addInfo) {
return InfoArray.add(addInfo);
}
public void PrintAll() {
Iterator<Info> iter = InfoArray.iterator();
while(iter.hasNext()){
Info info = iter.next();
System.out.println( info.getValue() + info.getMoreInfo().getType2() + info.getMoreInfo().getType());
}
}
public void PrintSmaller() {
InfoArray.stream().filter(e -> e.getValue() < 30()).forEach(System.out::println);
}
public void PrintLarger() {
InfoArray.stream().filter(e -> e.getValue() > 30()).forEach(System.out::println);
}
}
следующий класс «MoreInfo» содержит переменные
package test;
public class MoreInfo {
private String type;
private String type2;
public MoreInfo(String Type, String Type2) {
this.type2 = Type2;
this.type = Type;
}
public String getType() {
return this.type;
}
public void setType(String type) {
this.type = type;
}
public String getType2() {
return type2;
}
public void setType2(String Type2) {
this.type2 = type2;
}
public String toString(){
return type + " " + type + " " + type2;
}
}
Последний класс "Info" также содержит переменные
package test;
public class Info {
private MoreInfo moreInfo;
private int value;
public Info(MoreInfo moreInfo, int value) {
this.moreInfo = moreInfo;
this.value = value;
}
public MoreInfo getMoreInfo() {
return moreInfo;
}
public int getValue() {
return value;
}
public String toString(){
return moreInfo + " " + value;
}
}
Подумал, что всем будет проще понять, если я опубликую полный код, а не его фрагменты.
Спасибо за помощь!