LINUX.ORG.RU

История изменений

Исправление vertexua, (текущая версия) :

Скалу уже писали.

Java, петросян-mode

import static com.google.common.collect.Collections2.*;
import static com.google.common.collect.Iterables.*;

import com.google.common.base.Function;
import com.google.common.base.Joiner;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;

import java.text.MessageFormat;
import java.util.Collection;
import java.util.List;

public class MainClass {
    public static void main(String[] arv){
        List<String> array = ImmutableList.of(
                "John", "James", "Jakob", "Peter", "Janette",
                "Tom", "Vasya", "Jean", "Juilia", "Heather");

        Collection<String> filtered = filter(array, new Predicate<String>() {
            @Override
            public boolean apply(String s) {
                return s.startsWith("J");
            }
        });

        Iterable<List<String>> partitioned = partition(filtered, 3);

        Iterable<String> formatted = transform(partitioned, new Function<List<String>, String>() {
            @Override
            public String apply(List<String> s) {
                return MessageFormat.format("{0} and {1} follow {2}", s.get(0),s.get(1),s.get(2));
            }
        });

        String result = Joiner.on("\n").join(formatted);
        System.out.println(result);
    }
}

Или без рюшечек

import static com.google.common.collect.Collections2.*;
import static com.google.common.collect.Iterables.*;

import com.google.common.base.Function;
import com.google.common.base.Joiner;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;

import java.text.MessageFormat;
import java.util.List;

public class MainClass {
    public static void main(String[] arv){
        List<String> array = ImmutableList.of(
                "John", "James", "Jakob", "Peter", "Janette",
                "Tom", "Vasya", "Jean", "Juilia", "Heather");

        String result = Joiner.on("\n").join(transform(partition(filter(array, new Predicate<String>() {
            @Override
            public boolean apply(String s) {
                return s.startsWith("J");
            }
        }), 3), new Function<List<String>, String>() {
            @Override
            public String apply(List<String> s) {
                return MessageFormat.format("{0} and {1} follow {2}", s.get(0),s.get(1),s.get(2));
            }
        }));
        
        System.out.println(result);
    }
}

Исходная версия vertexua, :

Java, петросян-mode

import static com.google.common.collect.Collections2.*;
import static com.google.common.collect.Iterables.*;

import com.google.common.base.Function;
import com.google.common.base.Joiner;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;

import java.text.MessageFormat;
import java.util.Collection;
import java.util.List;

public class MainClass {
    public static void main(String[] arv){
        List<String> array = ImmutableList.of(
                "John", "James", "Jakob", "Peter", "Janette",
                "Tom", "Vasya", "Jean", "Juilia", "Heather");

        Collection<String> filtered = filter(array, new Predicate<String>() {
            @Override
            public boolean apply(String s) {
                return s.startsWith("J");
            }
        });

        Iterable<List<String>> partitioned = partition(filtered, 3);

        Iterable<String> formatted = transform(partitioned, new Function<List<String>, String>() {
            @Override
            public String apply(List<String> s) {
                return MessageFormat.format("{0} and {1} follow {2}", s.get(0),s.get(1),s.get(2));
            }
        });

        String result = Joiner.on("\n").join(formatted);
        System.out.println(result);
    }
}

Или без рюшечек

import static com.google.common.collect.Collections2.*;
import static com.google.common.collect.Iterables.*;

import com.google.common.base.Function;
import com.google.common.base.Joiner;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;

import java.text.MessageFormat;
import java.util.List;

public class MainClass {
    public static void main(String[] arv){
        List<String> array = ImmutableList.of(
                "John", "James", "Jakob", "Peter", "Janette",
                "Tom", "Vasya", "Jean", "Juilia", "Heather");

        String result = Joiner.on("\n").join(transform(partition(filter(array, new Predicate<String>() {
            @Override
            public boolean apply(String s) {
                return s.startsWith("J");
            }
        }), 3), new Function<List<String>, String>() {
            @Override
            public String apply(List<String> s) {
                return MessageFormat.format("{0} and {1} follow {2}", s.get(0),s.get(1),s.get(2));
            }
        }));
        
        System.out.println(result);
    }
}