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消息
,与传递任何其他对象的方式相同。