Sie können im Online-Java-Compiler hier https://www.codechef.com/ide java8 ausführen.Spezifischen Wert von Liste Java erhalten
Hier ist mein Code zu anderen Wert suchen: Ich möchte nur '18' drucken, wenn ich 'Java' suche. Dieser Code wird zurückgegeben: [Person (Java, 18)] Meine Frage, wie nur '18' gedruckt wird?
import java.util.*;
class LinearSearchDemo {
public static void main (String[] args) {
List<Person> list = Arrays.asList(
Person.create("Oscar", 16),
Person.create("Oei", 17),
Person.create("Java", 18)
);
List<Person> result = searchIn(list,
new Matcher<Person>() {
public boolean matches(Person p) {
return p.getName().equals("Java");
}});
System.out.println(result);
}
public static <T> List<T> searchIn(List<T> list , Matcher<T> m) {
List<T> r = new ArrayList<T>();
for(T t : list) {
if(m.matches(t)) {
r.add(t);
}
}
return r;
}
}
class Person {
String name;
int age;
String getName(){
return name;
}
int getAge() {
return age;
}
static Person create(String name, int age) {
Person p = new Person();
p.name = name;
p.age = age;
return p;
}
public String toString() {
return String.format("Person(%s,%s)", name, age);
}
}
interface Matcher<T> {
public boolean matches(T t);
}
Ändern Sie Ihre 'toString()' Methode in 'Person' Klasse:' Rückkehr Alter; '. –
'result.stream(). ForEach (p -> System.out.println (p.age))'. –