java进阶04 集合类LinkedList

  LinkedList

  LinkedList与ArrayList没多大区别

  区别在于add的时候的两个方法

  AddFirst和AddLast

  当然 还比ArrayList多了很多方法这里就不细讨论(因为我也没去查api看那几个函数是什么意思...)

  

package ArrayList;

import java.util.LinkedList;

public class LinkedList1 {
    public static void main(String[] args){
        LinkedList<Student> linked=new LinkedList<Student>();
        
        Student s1=new Student("Joker", "boy", "25");
        Student s2=new Student("Alice", "girl", "18");
        Student s3=new Student("Rem", "boy", "21");
        
        linked.addFirst(s1);
        linked.addFirst(s2);
        linked.addFirst(s3);
        //后进先出 跟栈一样
        
        //遍历
        for(int i=0;i<linked.size();i++){
            System.out.println("第"+(i+1)+"个学生的姓名->"+linked.get(i).getName());
            System.out.println("第"+(i+1)+"个学生的性别->"+linked.get(i).getSex());
            System.out.println("第"+(i+1)+"个学生的年龄->"+linked.get(i).getAge());
            System.out.println();
        }
    }
}

  输出结果:

  第1个学生的姓名->Rem
第1个学生的性别->boy
第1个学生的年龄->21

第2个学生的姓名->Alice
第2个学生的性别->girl
第2个学生的年龄->18

第3个学生的姓名->Joker
第3个学生的性别->boy
第3个学生的年龄->25

这里可以看出来 这货就是栈...明细的后进先出

除了get()方法可以获取,还有getFirst和getLast

package ArrayList;

import java.util.LinkedList;

public class LinkedList1 {
    public static void main(String[] args){
        LinkedList<Student> linked=new LinkedList<Student>();
        
        Student s1=new Student("Joker", "boy", "25");
        Student s2=new Student("Alice", "girl", "18");
        Student s3=new Student("Rem", "boy", "21");
        
        linked.addFirst(s1);
        linked.addFirst(s2);
        linked.addFirst(s3);
        //后进先出 跟栈一样
        
        //遍历
        for(int i=0;i<linked.size();i++){
            /*System.out.println("第"+(i+1)+"个学生的姓名->"+linked.get(i).getName());
            System.out.println("第"+(i+1)+"个学生的性别->"+linked.get(i).getSex());
            System.out.println("第"+(i+1)+"个学生的年龄->"+linked.get(i).getAge());*/
            System.out.println("第"+(i+1)+"个学生的姓名->"+linked.getFirst().getName());
            System.out.println();
        }
    }
}

输出结果:

第1个学生的姓名->Rem

第2个学生的姓名->Rem

第3个学生的姓名->Rem

 

为什么呢? 这是肯定的,因为你又没有删除过最后一个元素,所以获得的值是一样的。

其实,这个getFirst和getLast不会用了遍历的,只是用来去第一个和最后一个的值。

同理addLast,就是先进先出 就是队列...

package ArrayList;

import java.util.LinkedList;

public class LinkedList1 {
    public static void main(String[] args){
        LinkedList<Student> linked=new LinkedList<Student>();
        
        Student s1=new Student("Joker", "boy", "25");
        Student s2=new Student("Alice", "girl", "18");
        Student s3=new Student("Rem", "boy", "21");
        
    /*    linked.addFirst(s1);
        linked.addFirst(s2);
        linked.addFirst(s3);*/
        //后进先出 跟栈一样
        
        linked.addLast(s1);
        linked.addLast(s2);
        linked.addLast(s3);
        //先进先出 跟队列一样
        
        //遍历
        for(int i=0;i<linked.size();i++){
            System.out.println("第"+(i+1)+"个学生的姓名->"+linked.get(i).getName());
            System.out.println("第"+(i+1)+"个学生的性别->"+linked.get(i).getSex());
            System.out.println("第"+(i+1)+"个学生的年龄->"+linked.get(i).getAge());
            /*System.out.println("第"+(i+1)+"个学生的姓名->"+linked.getFirst().getName());*/
            System.out.println();
        }
    }
}

输出结果:

第1个学生的姓名->Joker
第1个学生的性别->boy
第1个学生的年龄->25

第2个学生的姓名->Alice
第2个学生的性别->girl
第2个学生的年龄->18

第3个学生的姓名->Rem
第3个学生的性别->boy
第3个学生的年龄->21

java进阶 集合类LinkedList笔记到此结束。

good good stady

day day up

posted @ 2014-04-24 22:54  未闻罂粟  阅读(251)  评论(0编辑  收藏  举报