这是初始化。
ArrayList<ArrayList<String>> names = new ArrayList<ArrayList<String>>();
功能如下。
names.add("Amey");
和
names.set(a, "Jane");
这是需要转换为2D ArrayList的完整程序。该计划的目的是在约翰所在的任何地方取代约翰和简。
import java.util.*;
public class Prac5twodArraylistString {
public static void main(String[] args) {
ArrayList<ArrayList<String>> names = new ArrayList<ArrayList<String>>();
names.add("Amey");
names.add("Aditya");
names.add("John");
names.add("Saideep");
names.add("Shrikar");
names.add("Sujay");
for (int a = 0; a <= (names.size()) - 1; a++) {
System.out.println(names.get(a));
}
for (int a = 0; a <= (names.size()) - 1; a++) {
if (names.get(a).equals("John")) {
names.set(a, "Jane");
}
}
for (int a = 0; a <= (names.size()) - 1; a++) {
System.out.println(names.get(a));
}
}
}
。请帮我解释一下这段代码吗?
答案 0 :(得分:1)
您的代码无法编译。您正在创建一个setsebool -P httpd_can_network_connect 1
List
List
的{{1}},而您只想添加一个String
而不是String
List
}。
执行String
后,您需要执行names.add("anyName");
。但是,其余的代码将无效。
如果你改变了
names.add(new ArrayList<String>() {{add("name")};
代表
ArrayList<ArrayList<String>> names = new ArrayList<ArrayList<String>>();
您的代码将编译并运行。
答案 1 :(得分:0)
根据我的理解,我觉得你的问题在于你的2D ArrayList
。行ArrayList<ArrayList<String>> names = new ArrayList<ArrayList<String>>();
表示您的变量names
实际上是其他ArrayList
的{{1}}。因此,您的代码ArrayList<String>
会显示错误,因为此方法中预期的参数为name.add("SomeString")
,但您提供的是ArrayList<String>
。
现在如果您需要String
ArrayList
那么您必须声明ArrayList
的新变量,如下所示:
ArrayList<String>
将此名称添加到此ArrayList<String> temp = new ArrayList<>();
对象,而不是temp
对象:
name
现在将此temp.add("Amey");
temp.add("Aditya");
temp.add("John");
temp.add("Saideep");
temp.add("Shrikar");
temp.add("Sujay");
对象添加到temp
对象,如下所示:
names
要打印出你的内容,你必须使用这个循环:
names.add(temp);
如果用“Jane”替换“John”,您可以使用以下内容:
for(ArrayList<String> a : names){
for(String name: a){
System.out.println(name);
}
}