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
阅读全文
0 0
- Java集合:集合框架
- java集合---set集合
- JAVA 集合 的 集合
- 【集合】Java集合对比
- JAVA集合-Map集合
- JAVA集合-Set集合
- JAVA集合-List集合
- java集合------Map集合
- Java集合----List集合
- Java集合----Set集合
- Java集合----Map集合
- JAVA集合
- JAVA集合
- Java集合
- JAVA集合
- Java集合
- Java集合
- java 集合
- 阿里云服务器使用设置
- 返回值增加新字段
- java枚举类知识整理
- 2014 Benelux Algorithm Programming Contest (BAPC 14)
- Eclipse运行struts2项目报错:java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.Strut
- java 集合
- PAT A1021. Deepest Root (25)
- 配置Centos的虚拟机网卡
- Leetcode: 130. Surrounded Region(Week7, Medium)
- Mybatis 动态SQL语句
- Linux内核:基于int指令的经典系统调用过程分析
- java7新版文件操作
- docker、镜像与集装箱
- 距离度量方式(马氏距离,欧式距离,曼哈顿距离)