我嵌套的ArrayList在Java中看起来像那样:
myArrayList = [element1, element2, [element3]]
我想添加元素,以便ArrayList看起来像这样:
myArraylist = [element1, element2, [element3, element4, element5]]
我试着用;
myArrayList.get(2).add(elemet4);
myArrayList.get(2).add(elemet5);
但结果我得到了:
myArraylist = [element1, element2, [element3], element4, element5]
任何提示如何解决这个问题将非常感激。
编辑: 我的坏,我应该附加Java代码,避免误导你们。无论如何它是:
ArrayList<ArrayList<String>> finalArray = new ArrayList<ArrayList<String>>();
ArrayList<String> finalArrayTempCopy = new ArrayList<String>();
ArrayList<Integer> transactionTemp = new ArrayList<Integer>();
private ArrayList<Integer> addTransaction(){
System.out.println("Enter transaction amount:");
int amount = scanner.nextInt();
scanner.nextLine();
transactionTemp.add(Integer.valueOf(amount));
return transactionTemp;
}
private int searchName(String name){
int indexImienia = customerName.indexOf(name);
return indexImienia;
}
public void sumUp(){
String name = "Tom";
String branch = "First";
int indexImienia = searchName(name);
String transactionsAsString = transactionTemp.toString();
finalArrayTemp.add(name);
finalArrayTemp.add(branch);
finalArrayTemp.add(transactionsAsString);
finalArrayTempCopy = new ArrayList<String>(finalArrayTemp);
finalArray.add(indexImienia, finalArrayTempCopy);
}
稍后在代码中,如果我想添加单个事务,我使用以下方法
public void addSingleTransaction(){
int indexImienia = 0;
int amount =20;
finalArray.get(indexImienia).add(2, String.valueOf(amount));
}
编辑我的帖子我意识到问题可能在于将ArrayList转换为字符串并将其作为字符串添加到finalArray。无论如何,我将非常感谢您的见解。
答案 0 :(得分:1)
好像你正在寻找:
connect
或者
use students
假设,element是一个整数
答案 1 :(得分:1)
我认为你在寻找
List<Object> list1=new ArrayList<Object>();
List<Object> list=new ArrayList<Object>();
list.add("element1");
list.add("element2");
list1.add("element3");
list.add(list1);
List<Object> listobj=(List<Object>) list.get(2);
listobj.add("element4");
listobj.add("element5");
System.out.println(list);
您要将元素添加到父列表而不是嵌套列表,您必须存储嵌套列表的引用,然后才能添加其他元素。
答案 2 :(得分:0)
根据共享的伪代码,主数组声明存在一些问题。
ArrayList中只能包含一种类型的数据。因此,您的数组声明可以是:
ArrayList<Element> arr = new ArrayList<Element>();
或将List存储在其中:
ArrayList<ArrayList<Element>> ar2 = new ArrayList<ArrayList<Element>>();
如果您希望将两种类型的值存储在同一结构中 您可以使用Object存储任何类型的值,因为它是所有类的根。 在这种情况下,您的声明将类似于:
ArrayList<Object> arrOuter = new ArrayList<Object>();
Element e1 = new Element();
Element e2 = new Element();
arrOuter.add(e1);
arrOuter.add(e2);
ArrayList<Element> arrNested = new ArrayList<Element>();
Element e3 = new Element();
arrNested.add(e3);
arrOuter.add(arrNested);
但是在这种情况下,你不能直接调用arrOuter返回的数据的add方法,因为返回的数据是Object类。您必须将其显式地转换为列表,然后添加其他数据。
Element e4 = new Element();
Element e5 = new Element();
((ArrayList) arrOuter.get(2)).add(e4);
((ArrayList) arrOuter.get(2)).add(e5);