Skip to content

Instantly share code, notes, and snippets.

@qdongxu
Created September 21, 2023 10:42
Show Gist options
  • Select an option

  • Save qdongxu/b90a66d6ede4f2775f57e5f9035d6927 to your computer and use it in GitHub Desktop.

Select an option

Save qdongxu/b90a66d6ede4f2775f57e5f9035d6927 to your computer and use it in GitHub Desktop.
package com.example;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class CompetitionMain {
private static List<Competition> competList = new ArrayList<>();
public static void main(String[] args) {
competList.add(new CompetitionFoot(18, "footA"));
competList.add(new CompetitionFoot(30, "footA"));
competList.add(new CompetitionFoot(40, "footA"));
competList.add(new CompetitionHand(18, "handA"));
competList.add(new CompetitionHand(30, "handA"));
competList.add(new CompetitionHand(40, "handA"));
List<Competition> ageList = findByAge(competList, 18);
List<Competition> nameList = findByName(ageList, "footA");
for (Competition competition : nameList) {
System.out.println(competition.name);
}
}
public static List<Competition> findByAge(List<Competition> competitions, int age) {
return competitions.stream().filter(competition -> competition.age == age).collect(Collectors.toList());
}
public static List<Competition> findByName(List<Competition> competitions, String name) {
return competitions.stream().filter(competition -> competition.name.equals(name)).collect(Collectors.toList());
}
}
abstract class Competition {
public int age;
public String name;
public Competition(int age, String name) {
this.age = age;
this.name = name;
}
}
class CompetitionFoot extends Competition {
public CompetitionFoot(int age, String name) {
super(age, name);
}
// additional fields
}
class CompetitionHand extends Competition {
public CompetitionHand(int age, String name) {
super(age, name);
}
// additional fields
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment