Java desde la entrada hasta los ejercicios del capítulo maestro - Capítulo 12

Ejercicio 1 salida positiva y negativa de 26 letras inglesas

Ejercicio integral 1: la salida positiva y negativa de 26 letras en inglés usa matrices y la clase ArrayList, primero genera A→Z y luego genera z→a.

package org.hj.chapter12;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author HuJun
 */
public class EnglishLetters {
    
    

    /**
     * 综合练习1:26个英文字母的正反输出 使用数组和ArrayList类,先输出A→Z,再输出z→a。
     */

    public static void main(String[] args) {
    
    
        List<Character> letters = new ArrayList<>();
        //循环加入 26 个字母
        for (char i = 'a'; i <= 'z'; i++) {
    
    
            letters.add(i);
        }

        //输出A→Z,需要转成大写字母
        ArrayList<Character> newLetters = new ArrayList<>();
        for (char i = 0; i < 26; i++) {
    
    
            //利用字符转换大写方法
            newLetters.add(Character.toUpperCase(letters.get(i)));
        }
        System.out.println(newLetters);

        //输出z→a
        List<Character> collect = letters.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
        System.out.println(collect);
    }
}

Ejercicio 2 Depósitos y Retiros de la Cuenta Demo

Ejercicio integral 2: depósito y retiro de una cuenta demo Utilice la clase ArrayList para depositar y retirar de una cuenta demo, y los resultados de la ejecución se muestran en la siguiente figura.
inserte la descripción de la imagen aquí

package org.hj.chapter12;

import java.util.ArrayList;
import java.util.List;

/**
 * @author HuJun
 */
public class DepositAndWithdrawalFunds {
    
    

    /**
     * 综合练习2:模拟账户存取款 使用ArrayList类模拟账户存取款
     */

    public static void main(String[] args) {
    
    

        //保存余额的List
        List<String> balance = new ArrayList<>();
        balance.add("2015-05-06\t\t\t2000\t\t0\t\t2000");
        balance.add("2015-05-18\t\t\t0\t\t1000\t\t1000");
        balance.add("2015-06-08\t\t\t5000\t\t0\t\t6000");
        balance.add("2015-06-23\t\t\t0\t\t1500\t\t4500");
        balance.add("2015-07-03\t\t\t3000\t\t0\t\t7500");
        balance.add("2015-07-19\t\t\t0\t\t1000\t\t6500");
        balance.add("2015-08-01\t\t\t1000\t\t0\t\t7500");
        balance.add("2015-08-10\t\t\t0\t\t1000\t\t6500");
        System.out.println("存、取款时间\t\t\t存入\t\t支出\t\t余额");
        for (String s : balance) {
    
    
            System.out.println(s);
        }
    }
}

Ejercicio 3 Ordenar una matriz aleatoria

Ejercicio integral 3: ordenar una matriz aleatoria Una matriz aleatoria consiste en asignar un valor a cada elemento con un número aleatorio en una matriz de una longitud específica. Esto se usa a menudo en un entorno que requiere valores inciertos, como un juego de rompecabezas que requiere una matriz aleatoria para alterar el orden de las imágenes. Sin embargo, también hay un problema al mismo tiempo, es decir, la repetición de números aleatorios. Este problema a menudo se ignora. Utilice la colección TreeSet para realizar la secuencia no repetitiva, y complete automáticamente la clasificación de elementos, y luego generar una matriz El efecto se muestra en la siguiente figura.
inserte la descripción de la imagen aquí

package org.hj.chapter12;

import java.util.Set;
import java.util.TreeSet;

/**
 * @author HuJun
 */
public class SortRandomArray {
    
    

    public static void main(String[] args) {
    
    

        Set<Integer> set = new TreeSet<>();
        for (int i = 0; i < 10; i++) {
    
    
            //随机生成0-100的整数
            int v = (int) (Math.random() * 100 + 1);
            set.add(v);
        }
        //随机生成的集合
        System.out.println("生成无重复元素且升序排列的随机数组如下:");
        System.out.println(set);
    }
}

Ejercicio 4 Buscando héroes de Liangshan

Ejercicio integral 4: Buscando héroes en Liangshan Escriba los apodos y nombres de los diez mejores héroes en Liangshan en "Margen de agua" según el formato (como "Hu Baoyi Song Jiang", "Zhi Duo Xing Wu Yong", etc. ). Cuando se ingresa el apodo de un héroe de Liangshan (como "Zhi Duoxing") en la consola, la consola mostrará el nombre del héroe de Liangshan.

package org.hj.chapter12;

import java.util.HashMap;
import java.util.Scanner;

/**
 * @author HuJun
 */
public class Find108StarsOfDestiny {
    
    

    public static void main(String[] args) {
    
    

        HashMap<String, String> map = new HashMap<>();
        map.put("呼保义", "宋江");
        map.put("玉麒麟", "卢俊义");
        map.put("智多星", "吴用");
        map.put("入云龙", "公孙胜");
        map.put("豹子头", "林冲");
        map.put("霹雳火", "秦明");
        map.put("双鞭", "呼延灼");
        map.put("小李广", "花荣");
        map.put("小旋风", "柴进");
        map.put("扑天雕", "李应");

        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一位梁山好汉绰号:");
        String s = scanner.nextLine();
        System.out.println(map.get(s));
    }
}

Ejercicio 5 jugar a los dados

Ejercicio integral 5: jugar a los dados Zhang San, Li Si, Wang Wu y Zhao Liu juegan juegos de dados, comparan los puntos (recordatorio: agregue los puntos de los dados a la colección ArrayList, agregue el nombre (clave) y los puntos del dados a la colección Map (valor), donde valor es un elemento en una colección aleatoria de ArrayList. Si el valor valor se repite, comience de nuevo; si el valor valor no se repite, genere el nombre de la persona con la mayor cantidad de puntos ).

package org.hj.chapter12;

import java.util.*;

/**
 * @author HuJun
 */
public class Dice {
    
    

    public static void main(String[] args) {
    
    

        List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6);
        Map<String, Integer> map = new HashMap<>();
        map.put("张三", list.get((int) (Math.random() * 5) + 1));
        map.put("李四", list.get((int) (Math.random() * 5) + 1));
        map.put("王五", list.get((int) (Math.random() * 5) + 1));
        map.put("赵六", list.get((int) (Math.random() * 5) + 1));


        List<String> duplicateValues = new ArrayList<>();
        List<Integer> values = new ArrayList<>(map.values());

        for (int i = 0; i < values.size(); i++) {
    
    
            for (int j = i + 1; j < values.size(); j++) {
    
    
                if (values.get(i).equals(values.get(j))) {
    
    
                    duplicateValues.add(map.keySet().toArray()[i].toString());
                    duplicateValues.add(map.keySet().toArray()[j].toString());
                }
            }
        }
        if (!duplicateValues.isEmpty()) {
    
    
            System.out.println("出现相同点数,重新投掷");
            return;
        }

        Optional<Integer> first = map.values().stream().sorted(Comparator.reverseOrder()).findFirst();
        String name;
        if (first.isPresent()) {
    
    
            for (Map.Entry<String, Integer> entry : map.entrySet()) {
    
    
                if (entry.getValue().equals(first.get())) {
    
    
                    name = entry.getKey();
                    System.out.println("最大点数:" + name + ":" + first);
                }
            }
        }
    }
}

Supongo que te gusta

Origin blog.csdn.net/dedede001/article/details/130338750
Recomendado
Clasificación