Le type grep-ish de Perl en Java

Un processus qui extrait uniquement ceux qui remplissent les conditions d'un tableau ou d'une liste. Avec Perl, vous pouvez facilement écrire comme suit (rappelez-vous)

sample.pl


my @array = ('001', '901', '201', '010', '999', '311');
my @result = grep { /1$/ } @array;

Après avoir vérifié si la même chose peut être faite avec Java, il semble que ListUtils # select () puisse faire quelque chose de similaire.

Sample.java


List<String> list = Arrays.asList("001", "901", "201", "010", "999", "311");
List<String> result = ListUtils.select(list, new Predicate<String>() {

   @Override
   public boolean evaluate(String arg0) {
      //À la fin'1'Quand est attaché
      return StringUtils.endsWith(arg0, "1");
   }
});
		
System.out.println(result.toString()); //=> [001, 901, 201, 311]

J'ai essayé de faire de Predicate un type interne anonyme, mais quel est le meilleur pour implémenter Predicate dans ma classe? Ce dernier ressemble plus à une «écriture ancienne». Cette fois, j'ai écrit un exemple de source avec une liste de chaînes de caractères, mais je pense que ce sera plus efficace lorsque vous voudrez extraire d'une liste de beans.

Est-ce que c'est comme ça quand il est écrit sans utiliser ListUtils # select ()? Cela m'a fait me sentir familier. Le modèle habituel selon lequel l'imbrication des instructions if devient de plus en plus profonde à mesure que les conditions se compliquent.

Sample2.java


List<String> list = Arrays.asList("001", "901", "201", "010", "999", "311");
List<String> result = new ArrayList<String>();
for (String s : list) {
    if (s.endsWith("1")) {
        result.add(s);
    }
}

System.out.println(result.toString()); //=> [001, 901, 201, 311]

Recommended Posts

Le type grep-ish de Perl en Java
NVL-ish guy en Java
Changements dans Java 11
Janken à Java
Taux circonférentiel à Java
FizzBuzz en Java
Lire JSON en Java
Faites un blackjack avec Java
Programmation par contraintes en Java
Mettez java8 dans centos7
Joindre des tableaux en Java
"Hello World" en Java
Interface appelable en Java
Commentaires dans la source Java
Fonctions Azure en Java
Formater XML en Java
Simple htmlspecialchars en Java
Hello World en Java
Utiliser OpenCV avec Java
Mémorandum WebApi avec Java
Détermination de type en Java
Exécuter des commandes en Java (ping)
Divers threads en java
Implémentation du tri de tas (en java)
API Zabbix en Java
Art ASCII à Java
Comparer des listes en Java
POST JSON en Java
Exprimer l'échec en Java
Créer JSON en Java
Manipulation de la date dans Java 8
Nouveautés de Java 8
Utiliser PreparedStatement en Java
Nouveautés de Java 9,10,11
Exécution parallèle en Java
Essayez d'utiliser RocksDB avec Java
Évitez l'erreur que Yuma a donnée en Java
Obtenir des informations EXIF en Java
Modifier ini en Java: ini4j
L'histoire de Java dans ce monde
Essayez d'appeler JavaScript en Java
Essayez le type fonctionnel en Java! ①
J'ai fait une roulette à Java.
Implémentation de l'authentification en deux étapes en Java
Refactoring: faire du Blackjack en Java
Analyse de sujets (LDA) en Java
Prétraitement NEologd en Java neologdn-java
Changer le codage Java dans Windows
API Java Stream en 5 minutes
Problème de ne pas trouver javax.annotation.Généré en Java 11
Lire l'entrée standard en Java
Implémenter l'authentification de base en Java
Rechercher un sous-ensemble en Java
Programme Null-safe en Java (Eclipse)
[Java] Obtenir KClass en Java [Kotlin]
Créer des fonctions Azure en Java
Importer des données Excel avec Java