如何访问链表中的列表值?

时间:2012-08-05 22:29:31

标签: java data-structures

我有一个链表,它存储一个类的对象,该类有4个数据成员,2个字符串,一个整数和另一个类的对象列表。

如何访问链表中列表的值?

好的,这就是我的

LogProcess lp = new LogProcess(revision,author,date,pathinfo,msg);

pathinfo是List.revision,author,date,msg是字符串格式的列表。

现在,PathInfo是一个有三个数据成员action,kind,pathinfo的类。所有3个都是字符串。

现在让我们说如果我将链接List传递给构造函数并想要访问action,kind和pathinfo的值,我该怎么办?

5 个答案:

答案 0 :(得分:1)

假设您使用LinkedList,则会拨打get。如果你没有使用泛型(LinkedList<YourFooObject> YourLinkedList;将使用它们,LinkedList YourLinkedList不会),那么你需要一个强制转换,就像这样

 YourFooObject foo = (YourFooObject)YourLinkedList.get(0)

答案 1 :(得分:0)

//Retriver one of the nodes of the linked list
YourObjectType node = yourLinkedList.get(int index)

//access the list instance variable of your object (depending on it visibility)
node.myList; //if accessible from here
MyList myList = node.getMyList();

答案 2 :(得分:0)

LinkedList的get(index)函数将返回所需索引处的元素。

YourStructure data = list.get(someindex);

现在您可以从单个对象中获取列表:

LinkedList<Something> sublist = data.getList();

然后您可以像平常一样遍历该子列表:使用for循环,foreachiterator

答案 3 :(得分:0)

在我看来,最好的解决方法就是使用Object数组/列表/集合的foreach循环:

for(Object o : list) {
     if(o instanceof String) {
        //Object in list is a string
        String s = (String)o; //make sure to properly cast the object now that you know it is of proper type
     }
     else if(o instanceof int) {
        //object in list is an int
     }
     else if(o instanceof classA) {
        //object in list is from classA and you get the idea
     }
     else if(o instanceof classB) {
     }
//etc..
}

答案 4 :(得分:0)

您可以为LinkedList制作一个迭代器,以便访问您LinkedList的{​​{1}}对象,这样就可以了:

class object