java中的ArrayList

List的子类ArrayList特点:

package cn.manman.com;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;

/*
 * List的子类特点:
 *      ArrayList:
 *          底层数据结构是数组,查询快,增删慢;
 *          线程不安全,效率高;
 *      Vector:
 *          底层数据结构是数组,查询快,增删慢;
 *          线程安全,效率di;
 *      LinkKedList:
 *          底层数据结构是链表,查询慢,增删快;
 *          线程不安全,效率高;
 * 案例:
 *      使用List的任何子类存储字符串或者自定义的对象并遍历;
 * ArrayList的使用
 *      存储字符串并遍历
 */
public class ArrayListDemo {
    public static void main(String[] args) {
        //创建集合对象
        ArrayList arrayList=new ArrayList();
        
        //创建元素对象,并添加对象
        arrayList.add("hello");
        arrayList.add("world");
        arrayList.add("java");
        
        //遍历
        //方法一
        Iterator it=arrayList.iterator();
        while (it.hasNext()) {
            String s = (String) it.next();
            System.out.println(s);
            
        }
        System.out.println("--------");
        
        //遍历方法二,专门针对List的遍历
        ListIterator it1=arrayList.listIterator();
        while (it1.hasNext()) {
            String s1 = (String) it1.next();
            System.out.println(s1);
        }
        System.out.println("-------");
        
        //方法三,用for循环遍历
        for (int i = 0; i < arrayList.size(); i++) {
            String s2=(String) arrayList.get(i);
            System.out.println(s2);
        }
    }
}

List的子类Vector的特点:

  • 添加功能:public void addElement(Object obj)
//创建集合对象
        Vector vector=new Vector();
        
        //添加功能
        vector.addElement("hello");
        vector.addElement("world");
        vector.addElement("java");
  • 获取功能:
    public Object elementAt(int index)

        //方法一,遍历
        for (int i = 0; i < vector.size(); i++) {
            String s1=(String) vector.elementAt(i);
            System.out.println(s1);
        }

public Enumeration elements()

//方法二,遍历。
        Enumeration enumeration =vector.elements();
        while (enumeration.hasMoreElements()) {
            String s2 = (String) enumeration.nextElement();
            System.out.println(s2);
            
        }

List子类的LinkedList的特有功能:

  • 添加功能
    public void addFirst(Object c)
//添加元素,从前面开始添加
        linkedList.addFirst("hello");
        linkedList.addFirst("world");
        linkedList.addFirst("java");

public void addLast(Object c)

//添加元素,从后面开始添加
        linkedList.addLast("android");
        linkedList.addLast("web");
        linkedList.addLast("jsp");
  • 获取功能
    public Object getFirst()
System.out.println("从前面获取:"+linkedList.getFirst());

public Object getLast()

System.out.println("从后面获取:"+linkedList.getLast());
  • 删除功能
    public Object removeFirst()
System.out.println("removeFirst:"+linkedList.removeFirst());

public Object removeLast()

System.out.println("removeLast:"+linkedList.removeLast());

练习:

  • 去除集合中字符串的重复值
package cn.manman.com;

import java.util.ArrayList;
import java.util.Iterator;

/*
 * ArrayList去除集合中字符串的重复值
 * 分析:
 * A:创建集合对象
 * B:添加多个字符串元素(包含相同的)
 * C:创建新集合
 * D:遍历旧集合,获取得到每一个元素
 * E:拿这个元素到新的集合里面取找,有,不添加,没有,添加到新集合
 */
public class 练习1 {
    public static void main(String[] args) {
        //创建集合对象
        ArrayList arrayList=new ArrayList();
        
        //添加多个元素
        arrayList.add("hello");
        arrayList.add("world");
        arrayList.add("java");
        arrayList.add("hello");
        arrayList.add("android");
        arrayList.add("world");
        
        //创建新的集合
        ArrayList arrayList2=new ArrayList();
        
        //遍历旧的集合,获取得到每一个元素
        Iterator iterator=arrayList.iterator();
        while (iterator.hasNext()) {
            String string = (String) iterator.next();
            
            //用从旧集合中遍历出来的元素到新的集合里面取匹配
            if (!arrayList2.contains(string)) {
                arrayList2.add(string);
            }
            
        }
        //遍历新的集合
        for (int i = 0; i < arrayList2.size(); i++) {
            String string = (String) arrayList2.get(i);
            System.out.println(string);
        }
    }
}

你可能感兴趣的:(java中的ArrayList)