访问第二个元素的Java LinkedList

时间:2011-09-15 12:46:04

标签: java linked-list

我创建了一个存储两个元素的链表。有人能告诉我如何访问第二个元素。在这种情况下,lastName

这是我到目前为止所提出的。

public class Bank
{
  private LinkedList<List> words = new LinkedList<List>();
  public void startup()
   {
     words.add(new List("Fred","Cool"));
   }

这是我的列表类

public class List
{
   public List(String name, String lastName)
   {
     this.name = name;
     this.lastName = lastName;
 }

3 个答案:

答案 0 :(得分:3)

您的代码中存在许多问题:

  1. 我建议您将List课程重命名为Person,因为该类型的对象显然不代表列表。

  2. namelastName不会是列表的元素。它们是List(阅读Person)类的构造函数的参数。

  3. 您的List中没有字段,因此您无法执行

    this.name = name;
    this.lastName = lastName;
    
  4. 要访问words列表中的第二个元素,请执行

    words.get(1);   // access second element (indecies are 0-based)
    

    但是,由于您只添加了一个元素,因此无法使用上述表达式。


    这是一个让您走上正确轨道的完整示例:

    import java.util.LinkedList;
    
    class Bank {
        private LinkedList<Person> persons = new LinkedList<Person>();
    
        public void startup() {
            persons.add(new Person("Fred", "Cool"));
        }
    
        public LinkedList<Person> getPersonList() {
            return persons;
        }
    }
    
    class Person {
        String name, lastName;
    
        public Person(String name, String lastName) {
            this.name = name;
            this.lastName = lastName;
        }
    }
    
    class Test {
        public static void main(String[] args) {
            Bank bank = new Bank();
            bank.startup();
    
            String lastNameOfFirstPerson = bank.getPersonList().get(0).lastName;
            System.out.println(lastNameOfFirstPerson); // prints "Cool"
        }
    }
    

答案 1 :(得分:0)

words.get(index).lastName;

这假设该字段是可访问的。

答案 2 :(得分:0)

按索引访问链表元素效率非常低。尝试使用ListIterator<E> LinkedList#listIterator()