Java基础学习(五)—Collection
一、Collection概述
1.数组和集合的区别
(1)长度区别
数组长度是固定的,集合长度是可变的。
(2)存储内容区别
数组只能存放同一种类型的元素(基本类型/引用类型)。
集合可以存储不同类型的对象。
二、集合的体系

Collection
Collection是集合体系的根接口,它包含了集合的基本操作和属性。
Collection包含了List和Set两大分支。
(1)List是一个有序的队列,每一个元素都有它的索引,第一个元素的索引值是0。
List的实现类有:ArrayList、LinkedList、Vector、Stack。
(2)Set是一个不允许有重复元素的集合。
Set的实现类有HashSet、TreeSet。HashSet底层通过HashMap实现,TreeSet底层通过TreeMap实现。
(3)Map是一个映射接口,即key-value键值对。
AbstractMap是个抽象类,它实现了Map接口中大部分的API,HashMap、TreeMap都是基础与AbstractMap。
HashTable虽然继承于Dictionary,但它实现了Map接口。
三、相关方法
/*
* Collection的功能概述:
* 1:添加功能
* boolean add(Object obj):添加一个元素
* boolean addAll(Collection c):添加一个集合的元素
* 2:删除功能
* void clear():移除所有元素
* boolean remove(Object o):移除一个元素
* boolean removeAll(Collection c):移除一个集合的元素
* 3:判断功能
* boolean contains(Object o):判断集合中是否包含指定的元素
* boolean containsAll(Collection c):判断集合中是否包含指定的集合元素
* boolean isEmpty():判断集合是否为空
* 4:获取功能
* Iterator<E> iterator()
* 5:长度功能
* int size():元素的个数
* 6:交集功能
* boolean retainAll(Collection c):两个集合都有的元素?思考元素去哪了,返回的boolean又是什么意思呢?
* 7:把集合转换为数组
* Object[] toArray()
*/
1.基础测试
@Test
public void testCollection(){ //创建集合对象
Collection c = new ArrayList(); //1.add():添加一个元素
c.add("AAA");
c.add("BBB");
c.add("CCC");
System.out.println(c); //2.remove():移除一个元素
c.remove("BBB");
System.out.println(c); //3.contains():判断集合中是否包含指定的元素
System.out.println("contains AAA : " + c.contains("AAA")); //4.isEmpty():判断集合是否为空
System.out.println("isEmpty: " + c.isEmpty()); //5.size():元素的个数
System.out.println("size: " + c.size()); //6.clear()
c.clear();
System.out.println(c);
System.out.println("isEmpty: " + c.isEmpty()); }
结果:
[AAA, BBB, CCC]
[AAA, CCC]
contains AAA : true
isEmpty: false
size: 2
[]
isEmpty: true
2.带All的测试
先初始化两个集合对象,然后进行测试。
//初始化集合对象
Collection c1 = new ArrayList();
c1.add("abc1");
c1.add("abc2");
c1.add("abc3"); Collection c2 = new ArrayList();
c2.add("abc3");
c2.add("abc4");
c2.add("abc5");
addAll(Collection c): 添加一个集合的元素。
c1.addAll(c2);
System.out.println("c1: " + c1);
结果:
c1: [abc1, abc2, abc3]
c2: [abc3, abc4, abc5]
c1: [abc1, abc2, abc3, abc3, abc4, abc5]
removeAll(Collection c): 移除一个集合的元素。
c1.removeAll(c2);
System.out.println("c1: " + c1);
结果:
c1: [abc1, abc2, abc3]
c2: [abc3, abc4, abc5]
c1: [abc1, abc2]
containsAll(Collection c): 判断集合中是否包含指定的集合元素。
System.out.println("c1.containsAll(c2): " + c1.containsAll(c2));
结果:
c1: [abc1, abc2, abc3]
c2: [abc3, abc4, abc5]
c1.containsAll(c2): false
retainAll(Collection c): 两个集合的交集。
c1.retainAll(c2);
System.out.println("c1 : " + c1);
结果:
c1: [abc1, abc2, abc3]
c2: [abc3, abc4, abc5]
c1: [abc3]
3.其他测试
Object[] toArray(): 把集合转成数组,可以实现集合的遍历。
//初始化集合对象
Collection c = new ArrayList();
c.add(new Person("AAA",20));
c.add(new Person("BBB",21));
c.add(new Person("CCC",22)); //把集合转换为数组
Object[] arr = c.toArray(); for(int i = 0;i < arr.length;i++){
System.out.println(arr[i]);
}
Iterator iterator(): 迭代器,集合的专用遍历方式。
//初始化集合对象
Collection c = new ArrayList();
c.add(new Person("AAA",20));
c.add(new Person("BBB",21));
c.add(new Person("CCC",22)); //iterator():迭代器,集合专用的遍历方式
Iterator it = c.iterator();//实际返回的是子类对象
while(it.hasNext()){
Person p = (Person)it.next();
System.out.println(p);
}
Java基础学习(五)—Collection的更多相关文章
- java基础学习笔记五(抽象类)
java基础学习总结——抽象类 抽象类介绍
- JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API
森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397 文章- 0 评论- 78 JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- java基础学习总结——java环境变量配置(转)
只为成功找方法,不为失败找借口! 永不放弃,一切皆有可能!!! java基础学习总结——java环境变量配置 前言 学习java的第一步就要搭建java的学习环境,首先是要安装 JDK,JDK安装好之 ...
- Java实习生常规技术面试题每日十题Java基础(五)
目录 1.启动一个线程是用run()还是start()? . 2.线程的基本状态以及状态之间的关系. 3.Set和List的区别,List和Map的区别? 4.同步方法.同步代码块区别? 5.描述Ja ...
- Java基础学习-- 继承 的简单总结
代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...
- Java基础学习中一些词语和语句的使用
在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...
- 转载-java基础学习汇总
共2页: 1 2 下一页 Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3 Java基础学习总结——Java对象的序列化和 ...
随机推荐
- fetch使用的常见问题及解决办法
首先声明一下,本文不是要讲解fetch的具体用法,不清楚的可以参考MDN fetch教程. 引言 说道fetch就不得不提XMLHttpRequest了,XHR在发送web请求时需要开发者配置相关请求 ...
- 我个人的Java学习经验(一家之言)
声明:本文只是我的个人经验之谈,或者连经验之谈都算不上,因为我觉得自己还是个新手,没有什么经验可谈,就算是我分享一下自己从开始学习Java到现在的一些心路历程吧,各位看官暂且看吧,欢迎交流.第一部分算 ...
- XML入门知识
什么是XML? 答:指可扩展标记语言(eXtensible Markup Language),被设计用来传输和存储数据:标签没有被预定义.您需要自行定义标签:被设计为具有自我描述性. XML和HTML ...
- Angular.js之内置过滤器学习笔记
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 用phpcms如何将静态页面制作成企业网站(下)
上篇讲到了子页部分 这样的 有分页选择 列表项的代码部分 最后输出变量pages就可以了 看一下运行的效果 点击下一页 再来改一下子页显示的样式 点击人才将会出来的一个子页面 路径要统一 再来更改后台 ...
- 徒手用Java来写个Web服务器和框架吧<第一章:NIO篇>
因为有个不会存在大量连接的小的Web服务器需求,不至于用上重量级服务器,于是自己动手写一个服务器. 同时也提供了一个简单的Web框架.能够简单的使用了. 大体的需求包括 能够处理HTTP协议. 能够提 ...
- NDK 开发(Android.mk配置)
在我写这篇文章的时候,Android Studio已经是2.3版本了,已经集成CMake 编译工具, 用户只需在 新建项目的时候,添加选项(Include C++ support),Andr ...
- (九)javaScript的基本使用
<script type="text/javascript"> var userName; var userAge; function interInfo(){ use ...
- Java Web(十四) 编写MyBookStore项目的总结
这几天一直没有发博文,原因是在写一个书城的小项目,作为web学习的最后沉淀,接下来就要到框架的学习了. --WH 一.项目介绍 从网上找的一个培训机构的小项目,名称叫做 书城购物网站 吧,其中就是分前 ...
- mac air 上的Linux命令训练(1)
1.cat命令 作用: 读取一个文件的全部内容,并将它输出,如果将它输出到一个目标文件,目标文件将会被替换掉. 参数: -n : 加上行号输出 -b:加上行号,但是不加空白行,输出 -s:当遇到多行空 ...