Java中的集合框架
来源:互联网 发布:php求和函数 编辑:程序博客网 时间:2024/06/16 15:18
之前自己自学了Java,学到集合框架的时候就一脸懵逼,这次在培训班,老师带着复习了一遍,感觉学的还不是很好,所以根据自己的理解总结一下。如果有写的不好的地方欢迎大家批评指正。
1.为什么要引入集合类
目的是为了克服数组的局限性,数组主要有以下两点局限性
- 存储元素个数固定
- 元素类型固定
2.集合概述
- Java中集合类是用来存放对象的
- 集合相当于一个容器,里面包容着一组对象 —— 容器类
- Java API提供的集合类位于java.util包内
- 可以把集合理解为一个微型数据库,既然是数据库,主要操作无外乎“增删改查”
3.集合框架层次结构
4.集合框架基本理解
从层次图中可以看到,顶层有两大基类:Collection和Map
- Collection表示一组纯数据
- Map表示一组Key-Value键值对
Collection
Collection下有两个接口,List接口和Map接口,
- List : 有序的集合,允许重复
- Set :无序的集合,不允许重复
对于List接口,有若干种实现,常用的类有ArrayList、Vector、LinkedList、Stack.
- ArrayList与LinkedList的对比:
(1)ArrayList适用于随机访问,LinkedList适用于顺序访问;
(2)LinkedList更加适用于插入、删除大量元素的情形;
(3)两者都是线程不安全的 - 如果在多线程的程序中要使用到集合框架,并且不希望线程与线程之间相互干扰,那么Vector是不错的选择,Vector是线程安全的。
Map
Map中,key值是唯一的(不能重复),而key对象是与value对象关联在一起的
Map接口有两个实现:
- HashMap — key/value对是按照Hash算法存储的
- TreeMap — key/value对是排序(按key排序)存储的
Iterator
迭代也叫遍历,对于有下标可通过for循环遍历即可,但是Set集合是没有下标的,为此Java提供了迭代器Iterator,专门用于集合的遍历。
- 使用方法iterator()要求容器返回一个Iterator。
- 使用next()获得序列中的下一个元素。
- 使用hasNext()检查序列中是否还有元素。
- 使用remove()将迭代器新返回的元素删除。
import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class TestIterator { public static void main(String[] args) { List l = new ArrayList(); l.add("aa"); l.add("bb"); l.add("cc"); Iterator it = l.iterator(); while (it.hasNext()) { String str = (String) it.next(); System.out.println(str); } }}
Collections
注意:Colllections不是Collection的复数
区别:
- Collection是接口,是List和Set的父接口
- Collections是工具类,提供了排序,混淆等等很多实用方法
类Collections是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。
里面有一些常用的方法,示例代码如下:
import java.util.*; public class Test{ public static void ret(Object obj) { System.out.println(obj); } public static void main(String [] args){ List<String> ls = new ArrayList<String>(); ls.add("aaa"); ls.add("bbb"); ls.add("ccc"); ls.add("ddd"); ret(ls); Collections.sort(ls); ret(ls); String tmp = Collections.max(ls); ret("max :"+tmp); int index = Collections.binarySearch(ls,"bbb"); ret("index :" + index); //替换 Collections.replaceAll(ls, "aaa","KK"); ret(ls); //反转,逆置 Collections.reverse(ls); ret(ls); //fill 方法可以将list集合中所有元素转换成指定元素 Collections.fill(ls,"pp"); ret(ls); } }
阅读全文
0 0
- java 中的集合框架
- java中的集合框架
- Java中的集合框架
- java中的集合框架
- java中的集合框架
- java中的集合框架
- Java中的集合框架
- java中的集合框架
- java中的集合框架
- 《JAVA中的集合框架》
- JAVA中的集合框架
- JAVA中的集合框架
- java中的集合框架
- java中的集合框架
- Java 中的集合框架
- Java中的集合框架
- Java 中的集合框架
- java中的集合框架
- 【Mybatis】实例
- Python学习笔记——斐波那契数列实现
- Linux软件管理-RPM和YUM作用与关系
- 欧拉函数
- ImportError: No module named model_libs
- Java中的集合框架
- How Many Equations Can You Find
- [NOIP2011] 玛雅游戏
- 欧拉函数
- Codeforces Round #426 (Div. 2)
- spring&velocity>velocityEngine
- CardView使用详解
- 每日工作计划
- hdu 3037 Saving beans 卢卡斯定理