List子类 ArrayList Vector 和 LinkedList

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]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值