我正在使用深度优先搜索程序,我正在尝试创建一个邻接列表表示。 我阅读了一些文章,声明在ArrayList中创建ArrayLists是最好的表示。
假设我在arraylist中初始化了arraylist,如下所示:
List<List<Integer>> adjList = new ArrayList<List<Integer>>();
我的问题是你如何手动将数据输入到arraylist中。在开始编程之前,我试图用arraylist来理解arraylist的概念。如果有人可能将数据插入到这个arraylist中,那么我可以看到正确的设置方式。
建议我对可能需要或考虑的任何内容进行任何其他输入。
顺便说一句:这不是一个家庭作业,只是利用个人时间浏览我的旧教科书。
答案 0 :(得分:2)
假设您要添加2个列表,一个包含1和2,另一个包含10和20.一个非常手动的添加方式可能是:
List<List<Integer>> adjList = new ArrayList<List<Integer>>();
adjList.add(new ArrayList<Integer>()); // initialise new ArrayList<Integer>
adjList.get(0).add(1); // add value one by one
adjList.get(0).add(2);
adjList.add(new ArrayList<Integer>());
adjList.get(1).add(10);
adjList.get(1).add(20);
您也可以这样写:
List<List<Integer>> adjList = new ArrayList<List<Integer>>();
ArrayList<Integer> a1 = new ArrayList<Integer>(); // initialise new ArrayList<Integer>
a1.add(1); // add value one by one
a1.add(2);
adjList.add(a1);
ArrayList<Integer> a2 = new ArrayList<Integer>(); // initialise new ArrayList<Integer>
a2.add(10); // add value one by one
a2.add(20);
adjList.add(a2);
答案 1 :(得分:0)
adjList
可以包含List<Integer>
类型的元素,因此创建一个并使用add(E element)
函数添加,就像添加元素一样:
ArrayList<Integer>aList = new ArrayList<>();
adjList.add(aList);
然后向List<Integer>
的元素(类型为adjList
)添加元素:您可以尝试使用get(index)
获取它并添加元素:
adjList.get(0).add(10);
adjList.get(0).add(22);
尝试添加第二个列表并使用get(1)
获取索引,并将Integer
元素添加到索引1
的列表中,如上例所示。还有其他已知的功能。请查看class ArrayList<E> documentation
页面。
答案 2 :(得分:0)
嗯,可以这样做一个Integer对象列表的列表:
List<List<Integer>> adjList = new ArrayList<List<Integer>>();
List<Integer> li = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
li.add(i);
}
adjList.add(li);
添加到每个子列表,然后添加子列表。
答案 3 :(得分:0)
这将有助于
public static void main(String[] args){
//creating a new ArrayList of List of Integers
ArrayList<List<Integer>> integerListContainer = new ArrayList<List<Integer>>();
//Creating the first child arraylist of Integers
ArrayList<Integer> firstChildintegerList = new ArrayList<Integer>();
//filling the values 1,2,3 in it
firstChildintegerList.add(1);
firstChildintegerList.add(2);
firstChildintegerList.add(3);
//adding this integer list to the parent list
integerListContainer.add(firstChildintegerList);
//Creating the second child arraylist of Integers
ArrayList<Integer> secondChildintegerList = new ArrayList<Integer>();
//filling the values 10,20,30 in it
secondChildintegerList.add(10);
secondChildintegerList.add(20);
secondChildintegerList.add(30);
//adding this integer list to the parent list
integerListContainer.add(secondChildintegerList);
System.out.println("Printing the parent list to see what it has: ");
System.out.println(integerListContainer.toString());
}
希望它清楚地解释会发生什么