java - 在我的具体情况下,如何将此数组转换为列表?

标签 java arrays loops for-loop arraylist

我已经迭代了一个数组B。检查 arrayList A 中是否存在公共(public)元素。然后删除这些元素并将 A 作为数组打印出来。

但我的问题是如何打印 A(在我的程序中它是 System.out.println(crIss.get(m));)作为 arrayList (只是不带 [] 括号的元素列表)而不是数组?

这是我正在处理的完整代码:

package issuetracking;

import java.util.*;

public class IssueTrackingObject {

    ArrayList<String> crIss = new ArrayList<String>();

    Scanner input = new Scanner(System.in);
    boolean crIss_bool;
    int numOfSolvedIss;
    private String[] solvedIss;

    //lets user create some issues and add them into an arrayList
    public void createIssue() {
        System.out.println("Enter 5 issues: ");

        for (int i = 0; i < 5; i++) {
            System.out.println("Issue " + (i + 1 + ": "));
            crIss_bool = crIss.add(input.nextLine());
        }

    }
//Let user mark some issues as solved (which are already in the list that the user has just created)

    public void solvedIssue() {
        System.out.println("How many solved issue you have(Must be less than 5): ");
        numOfSolvedIss = input.nextInt();

        solvedIss = new String[numOfSolvedIss];

        for (int k = 0; k < numOfSolvedIss; k++) {
            System.out.print("Enter solved issue(REMEMBER THAT THE SOLVED ISSUE MUST BE FROM ONE OF THEM YOU ALREADY HAVE CREATED)no. " + (k + 1) + ": ");

            solvedIss[k] = input.next();
        }

    }

    public void printUnsolvedIssue() {

for(int m=0; m<solvedIss.length;m++){
      crIss_bool = crIss.remove(solvedIss);

    System.out.println(crIss.get(m));   
}


    }


    public void printSolvedIssue() {
        System.out.println("");
        System.out.println("LIST OF SOLVED ISSUE:");

        for (int l = 0; l < solvedIss.length; l++) {
            System.out.printf("%s ", solvedIss[l]);
        }

    }

}

主类:

package issuetracking;

import java.util.*;

public class IssueTracking {

    static Scanner input = new Scanner(System.in);

    public static void main(String[] args) {
        IssueTrackingObject its = new IssueTrackingObject();

        System.out.println("                            WELCOME TO ISSUE TRACKING SYSTEM!\n\n");
        System.out.println("Choose from menu: ");
        System.out.println("1. Create new issue\n2. Mark issue(s) as solved\n"
                + "3. View solved issue(s)\n4. View unsolved issue(s)");
        System.out.println("Enter you choise:");
        //String userChoise = input.next();
        //switch-case

        while (true) {
            String userChoise = input.next();

            switch (userChoise) {
                case "1":
                    //System.out.println("Enter 5 issues: ");
                    //call appropriate issue
                    its.createIssue();
                    break;
                case "2":
                    //System.out.println("Mark solved issues (You must enter at least one issue): ");
                    //call appropriate issue
                    its.solvedIssue();
                    break;
                case "3":
                    System.out.println("Solved issue: ");
                    //call appropriate method
                    its.printSolvedIssue();
                    break;

                case "4":
                    System.out.println("Usolved issue: ");
                    //call appropriate issue
                    its.printUnsolvedIssue();
                    break;
                default:
                    System.out.println("Invalid input");
                    break;

            }

        }

    }

}

最佳答案

您所经历的打印行为是因为当您打印ArrayList之类的对象时,Java会调用该类的.toString()方法。 ArrayList.toString() 继承自 AbstractCollection.toString(),其文档可以在 here 找到。 .

我对更改此行为的建议是创建一个类似于以下内容的单独的打印函数:

public void printList(ArrayList<String> list)
{
     for(String str : list)
     {
          System.out.print(str+" ");
     }
     System.out.println();
}

然后调用此函数来代替打印语句:

printList(crIss);

请注意,此打印会将列表中的每个元素打印在一行上,并用空格分隔。

关于java - 在我的具体情况下,如何将此数组转换为列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27950736/

相关文章:

java - int[] array 和 int array[] 的区别

python - 如何将此模板列表与单词列表进行比较?

c++ - 混淆 while(cin >> x && x != 0) (当 int x = 0 时)与 while(x != 0 && cin >> x ) (当 int x = 1 时)

java - 如何在 JPA2 中强制使用 @ManyToOne 字段?

java.lang.NullPointerException : Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.hide()' on a null object reference

java - 使用 Byte Buddy 拦截对 Java 8 lambda 表达式的调用

r - 在 R 中执行逐列操作

java - DriverManager如何获取jdbc驱动类的实例

arrays - 如何在 Swift 中使用元组数组参数调用类 init?

arrays - 求解最大积子数组的正确方法