Question du test Java et Craftsmanship

Ce code permet de récupérer aléatoirement des nombres entre 1 et 31 dans les résultats. Il aurait fallu déclarer SimpleDateFormat dans le Thread.

Difficile

Ce code

SimpleDateFormat format = new SimpleDateFormat("DD");

ExecutorService executor = Executors
    .newFixedThreadPool(10);

Set<Future<String>> days = Collections
    .newSetFromMap(new ConcurrentHashMap<>());

IntStream.range(1, 32)
    .forEach(day -> {
      Future<String> result = executor.submit(() -> {

        Date date = new GregorianCalendar(2021,
            Calendar.JANUARY, day).getTime();

        return format.format(date);
      });

      days.add(result);
    });

Set<String> results = days.stream()
    .map(return result -> {
         try {
           return result.get();
         } catch (InterruptedException | ExecutionException e) {
           throw new AssertionError(e);
         }
       })
    .collect(Collectors.toSet());
Auteur: Clément DevosStatut : PubliéeQuestion passée 357 fois
Modifier
4
Évaluations de la communautéPersonne n'a encore évalué cette question, soyez le premier !