List子类 ArrayList Vector 和 LinkedList

来源:互联网 发布:制作游戏的软件 编辑:程序博客网 时间:2024/06/06 04:25

List子类 ArrayList Vector 和 LinkedList

 List集合的子类遍历集合中的元素可以使用的任何迭代遍历方式

面试题:
List子类的特点?

    ArrayList        底层数据结构是数组,查询快,增删慢,线程不安全,不同步,效率高    vector        底层数据结构是数组,查询快,增删慢,线程安全,同步,效率低    LinkedList        底层数据结构数链表,查询慢,增删快,线程不安全,不同步,效率高       应用场景:ArrayList:开发中用的非常多!如果给一个需求,不知道使用谁的时候,都使用ArrayList

ArrayList

需求:
ArrayList去除集合中字符串的重复值(字符串的内容相同)(创建新集合)

代码:
public static void main(String[] args) {
ArrayList al= new ArrayList();

    al.add("hello") ;    al.add("world") ;    al.add("world") ;    al.add("java") ;    al.add("javaee") ;    al.add("javaweb") ;    al.add("javaee") ;    al.add("javaee") ;    ArrayList nal = new ArrayList();    Iterator i = al.iterator();    while(i.hasNext()){        String s = (String)i.next();        if(nal.contains(s)){            nal.add(s);        }    }    Iterator i2 = nal.iterator();    while (i2.hasNext()){        String s = (String)i2.next();        System.out.println(s);    }}

结果:
hello
world
java
javaee
javaweb

需求:
ArrayList去除集合中字符串的重复值(字符串的内容相同)附件条件:不允许新建集合去完成!

代码:

 public static void main(String[] args) {    ArrayList  al= new ArrayList();    al.add("hello") ;    al.add("world") ;    al.add("world") ;    al.add("java") ;    al.add("javaee") ;    al.add("javaweb") ;    al.add("javaee") ;    al.add("javaee") ;    for(int x =0 ;x<al.size()-1;x++){        for(int y = 1+x;y<al.size();y++){            if(al.get(x).equals(al.get(y))){                al.remove(y);                y--;            }        }    }    Iterator i = al.iterator();    while(i.hasNext()){        String s = (String)i.next();        System.out.println(s);    }}

结果:

hello
world
java
javaee
javaweb

Vector

Vecotr的特有功能:

添加功能:    public void addElement(Object obj) :给Vector集合中添加元素    public Object elementAt(int index)      ------>get(int index):获取指定索引处的元素    public Enumeration elements()       ---->Iterator iterator()    boolean hasMoreElements()       ---->hasNext():判断是否有下一个可以迭代的元素    Object nextElement()            ----->next()

代码:

public static void main(String[] args) {
Vector v = new Vector();

    v.addElement("Hello");    v.addElement("World");    v.addElement("Java");    for(int x = 0;x<v.size();x++){        String s = (String)v.elementAt(x);        System.out.println(s);    }    System.out.println("*********");    Enumeration e = v.elements();    while(e.hasMoreElements()){        String s = (String)e.nextElement();        System.out.println(s);    }}

结果:

Hello
World
Java


Hello
World
Java

LinkedList

特有功能:
和添加相关的方法:
public void addFirst(Object e)
public void addLast(Object e)
和获取相关的方法:
public Object getFirst()返回此列表的第一个元素。
public Object getLast():返回此列表的最后一个元素
和删除相关的方法:
public Object removeFirst():删除此列表的第一个元素
public Object removeLast():删除此列表的最后一个元素

代码:

public static void main(String[] args) {    LinkedList ll = new LinkedList();    ll.add("Hello");    ll.add("World");    ll.add("Java");    /*和添加相关的方法:    public void addFirst(Object e)    public void addLast(Object e)*/    ll.addFirst("你好");    ll.addLast("我爱你");    System.out.println(ll);    System.out.println("*******************");    /*和获取相关的方法:    public Object getFirst()返回此列表的第一个元素。     public Object getLast():返回此列表的最后一个元素*/    System.out.println(ll.getFirst());    System.out.println(ll.getLast());    System.out.println("********************");    /* 和删除相关的方法:    public Object removeFirst():删除此列表的第一个元素    public Object removeLast():删除此列表的最后一个元素*/    ll.removeFirst();    ll.removeLast();    System.out.println(ll);}

结果

[你好, Hello, World, Java, 我爱你]


你好
我爱你


[Hello, World, Java]

阅读全文
0 0
原创粉丝点击