使用ArrayList手动访问ArrayLists

时间:2013-12-08 06:48:22

标签: java arraylist adjacency-list

我正在使用深度优先搜索程序,我正在尝试创建一个邻接列表表示。 我阅读了一些文章,声明在ArrayList中创建ArrayLists是最好的表示。

假设我在arraylist中初始化了arraylist,如下所示:

List<List<Integer>> adjList = new ArrayList<List<Integer>>();

我的问题是你如何手动将数据输入到arraylist中。在开始编程之前,我试图用arraylist来理解arraylist的概念。如果有人可能将数据插入到这个arraylist中,那么我可以看到正确的设置方式。

建议我对可能需要或考虑的任何内容进行任何其他输入。

顺便说一句:这不是一个家庭作业,只是利用个人时间浏览我的旧教科书。

4 个答案:

答案 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());
    }

希望它清楚地解释会发生什么