有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

取一个数字(长度为1到10)将其转换为索引,并以该索引为基础从Java中的数组中检索特定字符串

我想从rotatedzero中提取每个数组中的数字,一个接一个,并将其转换为索引,以便从courses中检索字符串/s,并将这些数组放入finalExcelFormula中。或者有人能解释一下地图是怎么做到的吗

旋转零包含所有可能的唯一数字,从所有数字中提取

例:旋转零。get(3)=[1,3,4];我想从courses数组返回,在索引1、3和4处列出字符串,并将该数组放入finalExcelFormula数组中。 Obs。数字总是在上升

List<Integer[]> rotatedZeros;
List<String[]> finalExcelFormula = new ArrayList<>(1023); 
static List<String> courses = new ArrayList<>();

        courses.add("\"Vue\"");
        courses.add("\"Mathematics\"");
        courses.add("\"Geography\"");
        courses.add("\"Physics\"");
        courses.add("\"Sport\"");
        courses.add("\"Literature\"");
        courses.add("\"Design\"");
        courses.add("\"C++\"");
        courses.add("\"Java\"");
        courses.add("\"C#\"");

private void finalExcelFormula() {
        for(int i = 0; i < rotatedZeros.size(); i++) {
            for(int e = 0; e < rotatedZeros.get(i).length; e++){
                Arrays.stream(finalExcelFormula.get(i)).toArray(courses.get(rotatedZeros.get(i)[e]));
            
            }
        }
    }

共 (2) 个答案

  1. # 1 楼答案

    尽管我读了你的问题四遍,但我不知道你想做什么

    这是一个基本的hasmap实现

    public static void main(String[] args) {
    
        ArrayList<Integer[]> rotatedZeros = new ArrayList();
    
        rotatedZeros.add(new Integer[]{1, 3, 4});
        rotatedZeros.add(new Integer[]{1, 2, 5});
        rotatedZeros.add(new Integer[]{1, 2, 3});
        rotatedZeros.add(new Integer[]{0, 1, 2});
    
        HashMap<Integer, String> things = new HashMap<>();
        things.put(1, "vous");
        things.put(2, "le");
        things.put(3, "vous");
        things.put(4, "couche");
        things.put(5, "avec");
        things.put(6, "moi");
    
        for (Integer[] rotatedZeroArray : rotatedZeros) {
            StringBuilder sb = new StringBuilder();
            for (Integer integer : rotatedZeroArray) {
                sb.append(things.get(integer)).append(" ");
            }
            System.out.println("output:" + sb.toString().trim());
        }
    
        // or weirder...
        ArrayList<String> courses = new ArrayList<>();
        courses.add("\"Vue\"");
        courses.add("\"Mathematics\"");
        courses.add("\"Geography\"");
        courses.add("\"Physics\"");
        courses.add("\"Sport\"");
        courses.add("\"Literature\"");
        courses.add("\"Design\"");
        courses.add("\"C++\"");
        courses.add("\"Java\"");
        courses.add("\"C#\"");
    
        HashMap<Integer, String> things2 = new HashMap();
    
        int counter = 0;
        for (String course : courses) {
            things2.put(counter++, course);
        }
    
        for (Integer[] rotatedZeroArray : rotatedZeros) {
            StringBuilder sb = new StringBuilder();
            for (Integer integer : rotatedZeroArray) {
                sb.append(things2.get(integer)).append(" ");
            }
            System.out.println("output:" + sb.toString().trim());
        }
        
    }
    
  2. # 2 楼答案

    要构造finalExcelFormula,您需要在Integer[]上进行tto流,并在查找courses的同时为它们创建相应的String[],在以下几行上:

    List<String[]> finalExcelFormula = rotatedZeros.stream()
            .map(rotatedZeroArray -> Arrays.stream(rotatedZeroArray)
                    .map(courses::get)
                    .toArray(String[]::new))
            .collect(Collectors.toList());