我最初只是有一个硬编码的数组,其中包含每个位置上的所有玩家的名字,但后来try 通过基于其他两个数组的拆分来自动化它.我是一个初学者编码器,所以我不明白它出了什么问题.此外,第20行是IntelliJ的建议.

我有一个循环(被intellJ缩短了)来计算数组应该有多长,还有一个跟踪变量和一个for循环.当运行for循环时,如果玩家在i的位置是我试图找到的位置,那么数组在tracker的值将是该玩家的名字,并且tracker将递增.

public static String[] stringArrayMaker (String[] ADP, int[] pos, int position) {
        int amount = (int) Arrays.stream(pos).filter(po -> position == po).count();
        String[] array = new String[amount];
        int tracker = 0;
        for (int i = 0; i < amount; i++) {
            if (pos[i] == position)
            {
                array[tracker] = ADP[i];
                tracker++;
            }
        }
        return array;
    }

String[] ADP = new String[] {"Patrick Mahomes", "Josh Allen", "Jalen Hurts", "Lamar Jackson", "CJ Stroud", "Joe Burrow", "Justin Jefferson", "Ja'Marr Chase", "Justin Herbert", "CeeDee Lamb", "Amon-Ra St. Brown", "Anthony Richardson", "Trevor Lawrence", "Caleb Williams", "Bijan Robinson", "Marvin Harrison Jr.", "Kyler Murray", "Breece Hall", "Puka Nacua", "Jordan Love", "Garrett Wilson", "Tyreek Hill", "Jahmyr Gibbs", "Dak Prescott", "Drake London", "Jayden Daniels", "Tua Tagovailoa", "Malik Nabers", "Drake Maye", "AJ Brown", "Brock Purdy", "Christian McCaffrey", "Sam Laporta", "Chris Olave", "Jaylen Waddle", "Rome Odunze", "Jonathan Taylor", "Trey McBride", "Kyren Williams", "Br和on Aiyuk", "Michael Pittman Jr.", "DJ Moore", "Brock Bowers", "De'Von Achane", "DeVonta Smith", "Nico Collins", "Mark Andrews", "Tank Dell", "Saquon Barkley", "DK Metcalf", "Zay Flowers", "Rashee Rice", "Brian Thomas Jr.", "Travis Etienne Jr.", "Tee Higgins", "Kyle Pitts", "Jordan Addison", "Stefon Diggs", "Jared Goff", "Jaxon Smith-Njigba", "Dalton Kincaid", "JJ McCarthy", "Rachaad White", "Jayden Reed", "Josh Jacobs", "Will Levis", "George Pickens", "Adonai Mitchell", "Christian Kirk", "Mike Evans", "James Cook", "Kenneth Walker III", "Deebo Samuel", "Christian Watson", "TJ Hockenson", "Xavier Worthy", "Ladd McConkey", "Isiah Pacheco", "Keon Coleman", "Davante Adams", "Bryce Young", "Xavier Legette", "Joe Mixon", "Deshaun Watson", "Diontae Johnson", "Troy Franklin", "Amari Cooper", "Baker Mayfield", "Josh Downs", "Kirk Cousins", "Trey Benson", "Jonathon Brooks", "Justin Fields", "Keenan Allen", "George Kittle", "Calvin Ridley", "D'Andre Swift", "Chris Godwin", "Travis Kelce", "Derrick Henry", "Jaylen Wright", "David Njoku", "Cooper Kupp", "Matthew Stafford", "Terry McLaurin", "Javonte Williams", "David Montgomery", "Najee Harris", "Marquise \"Hollywood\" Brown", "Tony Pollard", "Evan Engram", "Tyjae Spears", "Aaron Jones", "Ja'Lynn Polk", "Jakobi Meyers", "Jake Ferguson", "Rhamondre Stevenson", "James Connor", "Blake Corum", "Zack Moss", "Jaylen Warren", "Ricky Pearsall", "Alvin Kamara", "Pat Freiermuth", "Jalen McMillan", "Cole Kmet", "Micheal Mayer", "Brian Robinson Jr.", "Geno Smith", "Zach Charbonnet", "Zamir White", "Chuba Herbert", "Roschon Johnson", "Nick Chubb", "Courtl和 Sutton", "Aaron Rodgers", "Bo Nix", "Jerry Juedy", "Tyler Allgeier", "Jameson Williams", "Micheal Penix Jr.", "MarShawn Lloyd", "Malachi Corley", "Mike Williams"};
        int[] positions = new int[] {1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 4, 2, 1, 4, 2, 1, 2, 2, 4, 1, 2, 1, 1, 2, 1, 2, 1, 4, 3, 2, 2, 2, 4, 3, 4, 2, 2, 2, 3, 4, 2, 2, 3, 2, 4, 2, 2, 2, 2, 4, 2, 3, 2, 2, 1, 2, 3, 1, 4, 2, 4, 1, 2, 2, 2, 2, 4, 4, 2, 2, 3, 2, 2, 4, 2, 2, 1, 2, 4, 1, 2, 2, 2, 1, 2, 1, 4, 4, 1, 2, 3, 2, 4, 2, 3, 4, 4, 3, 2, 1, 2, 4, 4, 4, 2, 4, 3, 4, 4, 2, 2, 3, 4, 4, 4, 4, 4, 2, 4, 3, 2, 3, 3, 4, 1, 4, 4, 4, 4, 4, 2, 1, 1, 2, 4, 2, 1, 4, 2, 2};
        String[] TE = stringArrayMaker(ADP, positions, 3);

推荐答案

问题就在这里.把amount改为pos.length. 否则,您不会遍历所有位置.

for (int i = 0; i < pos.length; i++) { // <----- corrected here.
    if (pos[i] == position) {
        array[tracker] = ADP[i];
        tracker++;
    }
}

请注意,如果使用List<String>返回结果,则不需要计算返回数组的大小,因为Lists是动态增长的.

Java相关问答推荐

无法运行Java(已解决)

Cosmos Change Feed Process Lag远远超过收集中的记录数量

转换为Biggram

填写文本字段后锁定PDF

如何使用AWS CLI从S3存储桶中的所有对象中删除用户定义的元数据?

Spring Boot@Cachebale批注未按预期工作

MySQL数据库中未应用具有Spring数据的唯一约束

如何在antlr4中跳过所有反斜杠-换行符而保留换行符?

如何仅使用键/ID的一部分(组合)高效地返回映射值?

Java中不兼容的泛型类型

根本不显示JavaFX阿拉伯字母

Oracle中从JSON中提取和插入数据

JavaFX,GridPane:在GridPane的列中生成元素将保持所有列的宽度

在Spring Boot中使用咖啡因进行缓存

rest api服务 spring 启动中出现IllegalFormatConversionException

如何使用Hibernate v6.2构建NamingStrategy,以表名作为所有列的前缀?

无泄漏函数的Java DRY

[Guice/MissingImplementation]:未绑定任何实现

java构造函数中的冻结操作何时发生?

对于 Hangman 游戏,索引 0 超出长度 0 的范围