Java 如何将arraylist传递到其他类

Java 如何将arraylist传递到其他类,java,string,class,arraylist,Java,String,Class,Arraylist,这是我正在使用的代码 import java.util.Scanner; import java.io.*; import java.util.ArrayList; public class Message{ Scanner input; String emailLine = ""; String line; ArrayList<String> email = new ArrayList<String>(); String em

这是我正在使用的代码

import java.util.Scanner;
import java.io.*;
import java.util.ArrayList;

public class Message{

    Scanner input;
    String emailLine = "";
    String line;
    ArrayList<String> email = new ArrayList<String>();
    String emailString;
    String sender;
    String subject;
    String emailMIN;
    String[] newString;
    StringBuilder emailStringBuilder = new StringBuilder();

    public Message(String m)throws IOException{


    File inFile = new File ("mail.txt");
    input = new Scanner (inFile);
    String message;
    getEmails();
    }

    public void getEmails(){

    while(input.hasNextLine()){
            line = input.nextLine(); 
            System.out.println("Test, line: " + line);

                    if(line.equals("<END>")){
                    System.out.println("Test, <END> reached");
                    System.out.println("Test, email String: " +
emailStringBuilder.toString());
                            email.add(emailStringBuilder.toString());
                    }
                    else{
                            emailStringBuilder.append("\n" + line);
                    }
            }
            }
import java.util.Scanner;
导入java.io.*;
导入java.util.ArrayList;
公共类消息{
扫描仪输入;
字符串emailLine=“”;
弦线;
ArrayList电子邮件=新建ArrayList();
字符串emailString;
字符串发送器;
字符串主题;
字符串emailMIN;
字符串[]新闻字符串;
StringBuilder emailStringBuilder=新建StringBuilder();
公共消息(字符串m)引发IOException{
File infle=新文件(“mail.txt”);
输入=新扫描仪(填充);
字符串消息;
获取电子邮件();
}
公共邮件{
while(input.hasNextLine()){
line=input.nextLine();
System.out.println(“测试,行:+行”);
if(第行等于(“”){
System.out.println(“测试,达到”);
System.out.println(“测试,电子邮件字符串:”+
emailStringBuilder.toString());
add(emailStringBuilder.toString());
}
否则{
emailStringBuilder.append(“\n”+行);
}
}
}

我试图将电子邮件ArrayList传递到另一个类中,这样我就可以将ArrayList的字符串分解为单独的数组。我如何做到这一点?同样,一旦我将其放入另一个类中,我如何访问ArrayList的每个元素,并将每个元素分解为另一个ArrayList,每个元素之间用行分隔?

首先,一个
ArrayList
不是数组的
列表。它只是一个
列表
,在您的例子中是
字符串

如果要将
ArrayList
传递给其他类,只需执行以下操作:

public class MyOtherClass {

public void doSomething(ArrayList<String> myList) {
    // do something with "myList"
}
For (String nextString : email) {
    System.out.println(nextString); // Or do whatever you want with it :)
}
这有用吗

注意

从你对这个问题的编辑中,我想你还没有完全理解
ArrayList
是如何工作的。它不是
数组的
列表
!它只是
列表
接口的数组实现,在某些任务中有更好的性能。有关更多信息,请阅读

编辑

正如peeskillet所建议的,您还可以在新类中实例化一个
Message
类对象,并从中获取
ArrayList
,但是
email
必须是类
Message
中的公共字段,或者为
email
声明一个getter方法

编辑

由于您添加了更多问题:

您可以像这样浏览
ArrayList的所有元素:

public class MyOtherClass {

public void doSomething(ArrayList<String> myList) {
    // do something with "myList"
}
For (String nextString : email) {
    System.out.println(nextString); // Or do whatever you want with it :)
}

使用
message.getEmails()
获取电子邮件

下面是一个示例代码

public class Message{
Scanner input;
String emailLine = "";
String line;
List<String> emails = new ArrayList<String>();
String emailString;
String sender;
String subject;
String emailMIN;
String[] newString;
StringBuilder emailStringBuilder = new StringBuilder();

public Message(String m)throws IOException{


    File inFile = new File ("mail.txt");
    input = new Scanner (inFile);
    String message;
    populateEmails();
}

public void populateEmails(){

    while(input.hasNextLine()){
        line = input.nextLine(); 
        System.out.println("Test, line: " + line);

        if(line.equals("<END>")){
            System.out.println("Test, <END> reached");
            System.out.println("Test, email String: " +
                    emailStringBuilder.toString());
            emails.add(emailStringBuilder.toString());
        }
        else{
            emailStringBuilder.append("\n" + line);
        }
    }

}

public List<String> getEmails() {
    return emails;
}
}
公共类消息{
扫描仪输入;
字符串emailLine=“”;
弦线;
列出电子邮件=新建ArrayList();
字符串emailString;
字符串发送器;
字符串主题;
字符串emailMIN;
字符串[]新闻字符串;
StringBuilder emailStringBuilder=新建StringBuilder();
公共消息(字符串m)引发IOException{
File infle=新文件(“mail.txt”);
输入=新扫描仪(填充);
字符串消息;
populateEmails();
}
公共邮件{
while(input.hasNextLine()){
line=input.nextLine();
System.out.println(“测试,行:+行”);
if(第行等于(“”){
System.out.println(“测试,达到”);
System.out.println(“测试,电子邮件字符串:”+
emailStringBuilder.toString());
add(emailStringBuilder.toString());
}
否则{
emailStringBuilder.append(“\n”+行);
}
}
}
公共列表getEmails(){
回复邮件;
}
}

另一个类应该有一个构造函数,该构造函数接受另一个类中的
ArrayList
-或-instantiate
消息
,与传递任何其他对象的方式相同。