一、Collection

Collection 接口用于表示任何对象或元素组。想要尽可能以常规方式处理一组元素时,就使用这一接口。Collection 在前面的大图也可以看出,它是List 和 Set 的父类。并且它本身也是一个接口。它定义了作为集合所应该拥有的一些方法。如下:
注意:集合必须只有对象,集合中的元素不能是基本数据类型。

Collection 接口支持如添加和除去等基本操作。设法除去一个元素时,如果这个元素存在,除去的仅仅是集合中此元素的一个实例。

 boolean add(Object element)
boolean remove(Object element)

  Collection 接口还支持查询操作:    

int size()
boolean isEmpty()
boolean contains(Object element)
Iterator iterator()

  组操作 :Collection 接口支持的其它操作,要么是作用于元素组的任务,要么是同时作用于整个集合的任务。

 boolean containsAll(Collection collection)
boolean addAll(Collection collection)
void clear()
void removeAll(Collection collection)
void retainAll(Collection collection)

例子:

	public static void main(String[] args) {
// TODO Auto-generated method stub
Collection<String> collection1=new ArrayList<String>();//创建一个集合对象
collection1.add("000");//添加对象到 Collection 集合中
collection1.add("111");
collection1.add("222");
System.out.println("集合 collection1 的大小:"+collection1.size());
System.out.println("集合 collection1 的内容:"+collection1);
collection1.remove("000");//从集合 collection1 中移除掉 "000" 这个对象
System.out.println("集合 collection1 移除 000 后的内容:"+collection1);
System.out.println("集合 collection1 中是否包含 000 : "+collection1.contains("000"));
System.out.println("集合 collection1 中是否包含 111 : "+collection1.contains("111"));
Collection collection2=new ArrayList();
collection2.addAll(collection1);//将 collection1 集合中的元素全部都加到 collection2中
System.out.println("集合 collection2 的内容:"+collection2);
collection2.clear();//清空集合 collection1 中的元素
System.out.println("集合 collection2 是否为空 :"+collection2.isEmpty());
//将集合 collection1 转化为数组
Object s[]= collection1.toArray();
for(int i=0;i<s.length;i++){
System.out.println(s[i]);
}

          //使用迭代器
          Iterator<String> it = collection1.iterator();
          while(it.hasNext()){
              String a = it.next();
              System.out.println("==="+a);
           }

	}

  2、List接口
(1)基本思想
  用来存储有顺序的一组数据的集合。

(2)特点
  A:存储的数据信息是有顺序的
  B:允许出现重复值
  C:存的是各种类型的对象

(3)主要的实现类
  数组、Vector(向量)ArrayList
  Vector是起程不安全的ArrayList是线程安全的。

(4)Vector的使用
  A:实例化
    Vector vc=new Vector();
    意味着:系统已经为我们准备了默认的10个地址空间,等待进行数据写入。也允许我们我们自己进行指定初始化的容量大小以及增长量。
  B:添加数据
    注意:添加的是各种类型的对象数据
  C:遍历数据
    第一种方式:利用for循环进行遍历。注意前提:必须先判断Vector对象是否存在。
    第二种方式:利用枚举对象进行遍历Enumeration
  D:删除数据
    按照索引删除、按照元素的名称删除,
    删除所有元素
    清空集合:在缓存上直接清空缓存
    重新实例化对象
(5)ArrayList
  注意:当向Vector或ArrayList中添加数据时,不要超过5000个数据。

3、Set接口
(1)基本思想
用于存储一系列对象的集合。
(2)特点
存储的数据时无序的
不允许有重复值
(3)实现类
HashSet  treeSet

4、Map接口
(1)基本思想
以键值的方式进行数据存储的集合。
意思:以名称与值的成对的方式进行数据存储。
(2)特点
  A:存储的是一对对的数据
  B:存储数据时无序的
  C:不允许重复值
(3)实现类
哈希表 Hashtable  treeTable

  

最新文章

  1. R语言:常用函数【转】
  2. Android属性动画源代码解析(超详细)
  3. c# 游戏策划配置工具
  4. 几个国内速度最快的centos yum(更新源)
  5. codeforces731C Socks
  6. hdu1558--并查集+判断线段相交
  7. CUSPARSE 第三章 CUSPARAE索引和数据格式
  8. Button UI Kit CSS3美丽Buttonbutton
  9. Silverlight中如何自己写方法将DataTable转换为PagedCollectionView数据(动态创建类)
  10. .net core 2.0学习笔记(二):部署到Windows和Liunx系统
  11. mysql数据库的权限体系介绍
  12. py文件转换为exe文件
  13. SQL Server使用sp_spaceused查看表记录存在不准确的情况
  14. anacodna/python 安装 tensorflow
  15. Hive中的Order by与关系型数据库中的order by语句的异同点
  16. iOS----------网络请求错误
  17. 使用OCLint和Sonar对iOS代码分析和质量管理
  18. Swift JSON字符串和字典以及数组的互转
  19. Linux系统(和mac系统)chmod修改权限总结
  20. 学Hadoop还是Spark好?

热门文章

  1. CodeForces691C 【模拟】
  2. C#获得当前执行的函数名、当前代码行、源代码文件名
  3. 电脑内存和CPU的关系
  4. E: 软件包 ffmpeg 没有可供安装的候选者
  5. java数据结构----堆
  6. [题解](tarjan割点/点双)luogu_P3225_矿场搭建
  7. [coci2015-2016 coii] torrent【树形dp 二分】
  8. 转 open_cursors参数设置调优
  9. hybrid app开发中:苹果移动设备实用Meta标签
  10. 浅析ES6中的iterator