gpt4 book ai didi

java - 如何让数组列表在另一个类java中调用

转载 作者:行者123 更新时间:2023-12-02 02:20:34 24 4
gpt4 key购买 nike

我需要编写一段代码来检查数组列表中的所有单词,并告诉我其中有多少单词具有一定的长度。我知道如何做到这一点,但我不知道如何使 ArrayList 在第二个类中被读取,以便我可以在程序中应用它。

主要

import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
java.util.ArrayList myList = new java.util.ArrayList();
myList.add("cat");
myList.add("mouse");
myList.add("frog");
myList.add("dog");
myList.add("dog");
int len = in.nextInt();
WordList wl = new WordList();
wl.numWordsOfLength(len);
}
}

二等

public class WordList{
public int numWordsOfLength(int len){
int count = 0;
for(int i=0;i<len;i++){

if(((String)myList.get(i)).length()==len){
count++;
}
}
return count;
}
}

最佳答案

您需要将列表作为参数传递:

  public int numWordsOfLength(int len, List<String> myList){
int count = 0;
for(int i=0;i<myList.size;i++){

if((myList.get(i)).length()==len){
count++;
}
}
return count;
}

或通过WordList构造函数:

import java.util.List;
public class WordList{

private final List<String> myList;
WordList(List<String> myList){
this.myList = myList;
}
public int numWordsOfLength(int len){
int count = 0;
for (String s : myList) {
if (s.length() == len) {
count++;
}
}
return count;
}
}

侧节点而不是:

    java.util.ArrayList myList = new java.util.ArrayList();

就这样做:

   import java.util.List;
....
List<String> myList = new ArrayList();

完整运行示例:

public class Test {

public static class WordList{

private final List<String> myList;
WordList(List<String> myList){
this.myList = myList;
}
public int numWordsOfLength(int len){
int count = 0;
for (String s : myList) {
if (s.length() == len) {
count++;
}
}
return count;
}
}


public static void main(String[] args) {
Scanner in = new Scanner(System.in);
List<String> myList = new ArrayList<>();
myList.add("cat");
myList.add("mouse");
myList.add("frog");
myList.add("dog");
myList.add("dog");
int len = in.nextInt();
WordList wl = new WordList(myList);
System.out.println(wl.numWordsOfLength(len));
}
}

关于java - 如何让数组列表在另一个类java中调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66479120/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com