java 集合

来源:互联网 发布:淘宝一件代发是真的吗 编辑:程序博客网 时间:2024/05/21 06:01

集合

集合的概念

集合可以理解为一个动态的对象数组,不同的是集合中的对象内容可以任意扩充

集合的特点

  • 性能高
  • 容易扩展和修改

集合的种类

最常用的三种接口:set(集) list(列表) map(映射)
这里写图片描述

集合的选择

判断是否是键对对象形式   是:Map       元素是否需要排序         是:TreeMap        否:HashMap        不知道:HashMap  否:Collection      元素是否唯一       是:Set              是否需要排序                是:TreeSet                否:HashSet       否:List       是否安全         是:Vector         否:查询多ArrayList 增删多LinkedList

集合的常用方法

List接口 有序(根据放入的顺序)可重复

ArrayList 底层数据结构是数组
  • 长度:size()
  • 是否为空:boolean isEmpty()
  • 指定对象是否存在:int indexOf(object o)
  • 增加:add() addAll()
  • 修改:set()
  • 查询:1.get() 2.for循环 3.foreach方法 4.迭代器
  • 删除: remove()removeAll()增加:add()
vector

Vector与ArrayList用法差不多
二者不同之处:
1. ArrayList产用异步处理方式,而Vector产用同步方式
2. ArrayList属于非线程安全,而Vector属于线程安全

Set (不可重复)

HashSet 无序
  • 长度:size()
  • 增加:add() addAll()
  • 修改:不能修改
  • 查询:1.foreach方法 2.迭代器
  • 删除: remove()removeAll()
TreeSet 有序(String根据comparable接口)
  • 长度:size()
  • 增加:add() addAll()
  • 修改:不能修改
  • 查询:1.foreach方法 2.迭代器
  • 删除: remove()removeAll()

Iterator接口

Iterator是专门的迭代输出接口,迭代输出就是将一个个进行判断,判断是否有内容,如有内容则把内容取出

  • 判断是否还有元素:hasNext()
  • 将元素取出:next()
  • 删除元素:remove()
    在迭代输出的同时不能对集合执行remove(),解决方法,可以将集合中的元素取出放入到字符串中,然后执行if语句判断
public static void main(String[] args) {        List<String> list = new ArrayList<String>();        list.add("a");        list.add("b");        list.add("c");        list.add("d");        list.add("e");        list.add("f");        Iterator<String> ite = list.iterator();        while (ite.hasNext()) {            String str = ite.next();            if ("a".equals(str)) {                ite.remove();            } else {                System.out.println(str);            }        }    }

Map

HashMap
  • 添加元素:put()
  • 获得key值的value:get(key)
  • 判断key是否存在:containsKey()
  • 判断values是否存在:containsValue()
  • 获得key的所有值:keySet()返回的为Set类型
  • 获得valuess的所有值:values()返回的为Collection类型
TreeMap
原创粉丝点击