Ejercicio: procesamiento de elementos de colección

Ejercicio: Conjunto de elementos de procesamiento (método tradicional)
problema
. Hay dos conjuntos de ArrayList para almacenar los nombres de varios miembros en el equipo tradicional para el bucle (o bucle for mejorado) que se requiere para llevar a cabo los siguientes pasos en secuencia.:

  1. El primer equipo solo necesita un nombre de miembro de 3 caracteres; se almacena en un nuevo conjunto.
  2. Solo se requieren las primeras 3 personas después de que se selecciona el primer equipo; se almacenan en un nuevo conjunto.
  3. El segundo equipo solo necesita el nombre del miembro cuyo apellido es Zhang; se almacena en un nuevo conjunto.
  4. Después de seleccionar el segundo equipo, no tenga a las 2 primeras personas; guárdelas en un nuevo conjunto.
  5. Combine dos equipos en un equipo; almacene en un nuevo conjunto.
  6. Cree un objeto Person basado en el nombre; guárdelo en una nueva colección.
  7. Imprime la información del objeto Persona de todo el equipo.

Código:

public static void main(String[] args) {
    
    
        //第一支队伍
        ArrayList<String> one = new ArrayList<>();
        one.add("迪丽热巴");
        one.add("宋远桥");
        one.add("苏星河");
        one.add("石破天");
        one.add("石中玉");
        one.add("老子");
        one.add("庄子");
        one.add("洪七公");

        //第二支队伍
        ArrayList<String> two = new ArrayList<>();
        two.add("古力娜扎");
        two.add("张无忌");
        two.add("赵丽颖");
        two.add("张三丰");
        two.add("尼古拉斯赵四");
        two.add("张天爱");
        two.add("张二狗");

        //第一个队伍只要名字为3个字的成员姓名
        List<String> one1 = new ArrayList<>();
        for (String name : one) {
    
    
            if (name.length()==3){
    
    
                one1.add(name);
            }
        }

        //第一个队伍筛选之后只要前3个人
        List<String> one2 = new ArrayList<>();
        for (int i = 0; i < 3; i++) {
    
    
            one2.add(one1.get(i));
        }

         //第二个队伍只要姓张的成员姓名
        List<String> two1 = new ArrayList<>();
        for (String name : two) {
    
    
            if (name.startsWith("张")){
    
    
                two1.add(name);
            }
        }

        //第二个队伍筛选之后不要前2个人
        List<String> two2 = new ArrayList<>();
        for (int i = 1; i < two1.size(); i++) {
    
    
            two2.add(two1.get(i));
        }

        //将两个队伍合并为一个队伍;存储到一个新集合中
        List<String> all = new ArrayList<>();
        all.addAll(one2);
        all.addAll(two2);

        //根据姓名创建 Person 对象;存储到一个新集合中
        List<Person> person = new ArrayList<>();
        for (String name : all) {
    
    
            person.add(new Person(name));
        }

        //打印整个队伍的Person对象信息。
        for (Person person1 : person) {
    
    
            System.out.println(person1);
        }
    }
}

El código de la clase Person es:

public class Person {
    
    
    private String name;

    public Person() {
    
    
    }

    public Person(String name) {
    
    
        this.name = name;
    }

    @Override
    public String toString() {
    
    
        return "Person{" +
                "name='" + name + '\'' +
                '}';
    }

    public String getName() {
    
    
        return name;
    }

    public void setName(String name) {
    
    
        this.name = name;
    }
}

Demostración del programa:
Inserte la descripción de la imagen aquí

Optimización de la transmisión de secuencias:

Código:

public class Demo02StreamTest {
    
    
    public static void main(String[] args) {
    
    
        //第一支队伍
        ArrayList<String> one = new ArrayList<>();
        one.add("迪丽热巴");
        one.add("宋远桥");
        one.add("苏星河");
        one.add("石破天");
        one.add("石中玉");
        one.add("老子");
        one.add("庄子");
        one.add("洪七公");

        //第二支队伍
        ArrayList<String> two = new ArrayList<>();
        two.add("古力娜扎");
        two.add("张无忌");
        two.add("赵丽颖");
        two.add("张三丰");
        two.add("尼古拉斯赵四");
        two.add("张天爱");
        two.add("张二狗");

        //第一个队伍只要名字为3个字的成员姓名
        //第一个队伍筛选之后只要前3人
        Stream<String> stream1 = one.stream().filter(s -> s.length() == 3).limit(3);

        //第二个队伍只要姓张的成员姓名
        //第二个队伍筛选之后不要前2个人
        Stream<String> stream2 = two.stream().filter(s -> s.startsWith("张")).skip(2);

        //将两个队伍合并为一个队伍
        //根据姓名创建Person对象
        //打印整个队伍的Person对象信息
        Stream.concat(stream1,stream2).map(name->new Person(name)).forEach(person-> System.out.println(person));
    }
}

Demostración del programa:
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_44664432/article/details/109156917
Recomendado
Clasificación