java集合类详解

Collection

  • 集合可以理解为一个动态的对象数组,不同的是对象内容可以任意扩充
  • 集合的特点:
    性能高
    容易扩展和修改
  • Collection的常用子类
    List
    Set
    Queue

List

  • List接口可以存放人意的数据,而且List接口中内容是可以重复的
  • List接口常用子类:
    ArrayList
    Vector
    -常用操作
    判断集合是否为空 boolean isEmpty()
    查找制定的对象是否存在:int indexOf(Object o)

demo

package com.test.CollectionDemo;

import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

/**
 * Created by elijahliu on 2017/2/26.
 */
public class CollectionDemo {

    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("a");
        list.add("b");
        list.add("a");
        for (String i:list) {
            System.out.println(i);
        }

        list.remove(0);//delete
        System.out.println(list.indexOf("a"));//search a

        System.out.println(list.isEmpty());
    }

    //vectordemo
    public static void ListDemo2(){
        List list = new Vector();
        list.add("a");
        list.add("b");
        for (String i : list
                ) {
            System.out.println(i);
        }
    }
}

ArrayList和Vector比较

比较 ArrayList Vector
推出时间 JDK1.2之后推出 JDK1.0之后推出
性能 采用异步处理的方式,性能高 采用同步处理的方式,性能低
线程安全 属于非线程安全 属于线程安全

Set

  • set接口中不能加入重复元素,但是可以排序
  • 常用子类
    散列存放:HashSet
    有序存放:TreeSet

demo

public static void setDemo() {

        Set s = new HashSet<>();
        s.add("a");
        s.add("b");
        s.add("c");
        s.add("d");
        s.add("d");
        s.add("e");
        System.out.println(s);

        s = new TreeSet();
        s.add("a");
        s.add("c");
        s.add("b");
        s.add("d");
        s.add("d");
        s.add("e");
        System.out.println(s);//打印出来是有序的

    }

Iterator

  • 集合输出的标准输出
    标准做法,使用Iterator接口
  • 操作原理
    Iterator是专门的迭代输出接口,迭代输出就是将元素一个个进行判断,判断其是否有内容,如果有则把内容取走
java集合类详解_第1张图片
过程

demo

    public static void IteratorDemo() {
        List list = new ArrayList();
        list.add("a");
        list.add("c");
        list.add("b");
        list.add("d");
        list.add("d");
        list.add("e");

        Iterator iter = list.iterator();
        //这里实例话Iterator有点不同,是通过要进行迭代的实例话对象调用iterator方法来进行实例化的
        while (iter.hasNext()) {
            System.out.println(iter.next());
        }
        //hasNext()判断是否下一个元素为空,next()用于获取下一个元素

    }

ps:不能在迭代输出的时候进行iter.remove()删除操作,会报错

Map

  • 保存形式:
    key——>value的方式保存
    例子:小明:12312132
  • 常用字类:
    HashMap:无序存放,Key不允许重复
    Hashtable:无需存放,Key不允许重复

demo

    public static void mapDemo() {
        Map map = new HashMap();
        map.put("1", 1);
        map.put("2", 2);
        map.put("3", 3);
        map.put("4", 4);

        int i = (int) map.get("3");//提取键值

        boolean isKey = map.containsKey("1");//看key是不是存在 返回boolean
        boolean isValue = map.containsValue(1);//看value是不是存在,返回boolean

        Set s =map.keySet(); //map.keySet()可以将所有的键都提取出来,返回的是一个Set集合
        //map.values()返回所有值,返回是一个Collection 集合
        Iterator itr= s.iterator();//使用set集合调用迭代器Iterator来进行输出

        while (itr.hasNext()) {
            System.out.println(itr.next());
        }
    }

你可能感兴趣的:(java集合类详解)