Java基础-引用数据类型之集合(Collection)

                                      作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。  

一.为什么出现集合类

  面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就可以将对象进行存储,集合就是存储对象最常用的一种方式(容器),Java中集合也是类,真正用来存储东西的是某种集合类的实例对象。

二.集合类的特点

  数据和集合类都是容器,有何不同?集合类的特点又是什么呢?

1>.数组的特点

  a>.长度是固定的;

  b>.可以存储基本数据类型;

  c>.也可以存储对象的引用;

  d>.必须是相同类型的数据;

2>.集合的特点

  a>.长度是可变的;

  b>.只能用于存储对象的引用;

  c>.对象可以是不同类型;

三.Collection接口概述

  Collection是集合中的根接口。collection表示一组对象,这个对象也称为collection的元素,一些collection允许有重复的元素,而另一些则不允许,请记住下面这张图,有助你学习Java中的集合。

  如上图所示,Collection根接口有两个子接口,分别是List和Set:

1>.List接口

  可以存放重复远古三,元素存取是“有序”的。

2>.Set接口

  不可以存放重复元素,通常元素存取是“无序”的,也有一些实现类元素是“有序”的。

  注意:这里的“有序”,“无序”指的是存放元素是是否会记住元素存放的顺序,并非对元素进行“排序”。

四.Collection接口的基本方法

1>.add()方法【往集合中添加元素】

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; import java.util.ArrayList;
import java.util.Collection; public class CollectionDemo {
public static void main(String[] args) {
//接口多态的方式调用
Collection<String> coll = new ArrayList<String>();
//存储数据
coll.add("yinzhengjie");
coll.add("alex");
coll.add("Big data");
System.out.println(coll);
}
} /*
以上代码执行结果如下:
[yinzhengjie, alex, Big data]
*/

2>.clear()方法【清空集合的内容】

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; import java.util.ArrayList;
import java.util.Collection; public class CollectionDemo {
public static void main(String[] args) {
//接口多态的方式调用
Collection<String> coll = new ArrayList<String>();
//存储数据
coll.add("yinzhengjie");
coll.add("alex");
coll.add("Big data");
System.out.println(coll);
//清空集合内容
coll.clear();
System.out.println(coll);
}
} /*
以上代码执行结果如下:
[yinzhengjie, alex, Big data]
[]
*/

3>.Contains(Object o )方法【判断对象是否存在于集合中】

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; import java.util.ArrayList;
import java.util.Collection; public class CollectionDemo {
public static void main(String[] args) {
//接口多态的方式调用
Collection<String> coll = new ArrayList<String>();
//存储数据
coll.add("yinzhengjie");
coll.add("alex");
coll.add("Big data");
//查询集合是否存在“yinzhengjie”这个字符串
boolean b = coll.contains("yinzhengjie");
System.out.println(b);
}
} /*
以上代码执行结果如下:
true
*/

4>.size()方法【查看集合的长度】

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; import java.util.ArrayList;
import java.util.Collection; public class CollectionDemo {
public static void main(String[] args) {
//接口多态的方式调用
Collection<String> coll = new ArrayList<String>();
//存储数据
coll.add("yinzhengjie");
coll.add("alex");
coll.add("Big data");
//查看集合的大小
int length = coll.size();
System.out.println(length);
}
} /*
以上代码执行结果如下:
3
*/

5>.toArray()方法【返回的是一个存储对象的数组,数组的存储数据类型是Object】

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; import java.util.ArrayList;
import java.util.Collection; public class CollectionDemo {
public static void main(String[] args) {
//接口多态的方式调用
Collection<String> coll = new ArrayList<String>();
//存储数据
coll.add("yinzhengjie");
coll.add("alex");
coll.add("Big data"); //将集合转换成一个数组
Object[] array = coll.toArray();
for (Object object : array) {
System.out.println(object);
}
}
} /*
以上代码执行结果如下:
yinzhengjie
alex
Big data
*/

6>.remove方法【移除集合中指定的元素,若有多个想用元素就删除第一个匹配到的元素】

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; import java.util.ArrayList;
import java.util.Collection; public class CollectionDemo {
public static void main(String[] args) {
//接口多态的方式调用
Collection<String> coll = new ArrayList<String>();
//存储数据
coll.add("yinzhengjie");
coll.add("alex");
coll.add("Big data");
coll.add("yinzhengjie"); System.out.println(coll); boolean b = coll.remove("yinzhengjie");
System.out.println(b);
System.out.println(coll);
}
} /*
以上代码执行结果如下:
[yinzhengjie, alex, Big data, yinzhengjie]
true
[alex, Big data, yinzhengjie]
*/

7>.addAll(Collection c)方法【将一个集合中的所有元素添加到当前集合中】

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; import java.util.ArrayList;
import java.util.Collection; public class CollectionDemo {
public static void main(String[] args) {
//接口多态的方式调用
Collection<String> coll = new ArrayList<String>();
//存储数据
coll.add("yinzhengjie");
coll.add("alex");
coll.add("Big data");
coll.add("yinzhengjie"); System.out.println(coll); Collection coll2 = new ArrayList();
coll2.add("1");
coll2.add("2");
coll2.add("3");
System.out.println(coll2);
boolean res = coll.addAll(coll2);
System.out.println(res);
System.out.println(coll);
}
} /*
以上代码执行结果如下:
[yinzhengjie, alex, Big data, yinzhengjie]
[1, 2, 3]
true
[yinzhengjie, alex, Big data, yinzhengjie, 1, 2, 3]
*/

8>.removeAll(Collection c)方法【删除与传入集合共有的元素】

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; import java.util.ArrayList;
import java.util.Collection; public class CollectionDemo {
public static void main(String[] args) {
//接口多态的方式调用
Collection<String> coll = new ArrayList<String>();
//存储数据
coll.add("yinzhengjie");
coll.add("alex");
coll.add("Big data");
coll.add("yinzhengjie"); System.out.println(coll); Collection coll2 = new ArrayList();
coll2.add("yinzhengjie");
coll2.add("alex");
System.out.println(coll2);
boolean res = coll.removeAll(coll2);
System.out.println(res);
System.out.println(coll);
}
} /*
以上代码执行结果如下:
[yinzhengjie, alex, Big data, yinzhengjie]
[yinzhengjie, alex]
true
[Big data]
*/

9>.containsAll(Collection c)【判断一个集合是否包含另外一个集合】

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; import java.util.ArrayList;
import java.util.Collection; public class CollectionDemo {
public static void main(String[] args) {
//接口多态的方式调用
Collection<String> coll = new ArrayList<String>();
//存储数据
coll.add("yinzhengjie");
coll.add("alex");
coll.add("Big data");
coll.add("yinzhengjie"); Collection coll2 = new ArrayList();
coll2.add("yinzhengjie");
coll2.add("alex");
System.out.println(coll2);
boolean res = coll.containsAll(coll2);
System.out.println(res);
System.out.println(coll);
}
} /*
以上代码执行结果如下:
[yinzhengjie, alex]
true
[yinzhengjie, alex, Big data, yinzhengjie]
*/

10>.isEmpty()方法【判断集合是否为空】

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; import java.util.ArrayList;
import java.util.Collection; public class CollectionDemo {
public static void main(String[] args) {
//接口多态的方式调用
Collection<String> coll = new ArrayList<String>();
//存储数据
coll.add("yinzhengjie");
System.out.println(coll.isEmpty()); }
} /*
以上代码执行结果如下:
false
*/

Java基础-引用数据类型之集合(Collection)的更多相关文章

  1. Java 基础 引用数据类型 ArrayList集合

    引用数据类型(类) 分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类.Random类. 我们可以把类的类型为两种: 第一种,Java为我们提供好的类,如Scanner类, ...

  2. java基础-引用数据类型之一维数组(Array)

    java基础-引用数据类型之一维数组(Array) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组的定义 1>.为什么需要数组 保存一个数据可以定义一个变量,如果要保 ...

  3. java基础-引用数据类型之二维数组(Array)

    java基础-引用数据类型之二维数组(Array) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前我们学习过了Java的一维数组,所谓的二维数组就是元素是一堆一维数组的数组,换 ...

  4. java基础27 单例集合Collection及其常用方法

    1.集合 集合是存储对象数据的集合容器 1.1.集合比数组的优势 1.集合可以存储任意类型的数据,数组只能存储同一种数据类型的数据    2.集合的长度是变化的,数组的长度是固定的 1.2.数组:存储 ...

  5. Java 基础 引用数据类型 和 流程控制

    引用数据类型 与定义基本数据类型变量不同,引用数据类型的变量定义及复制有一个相对固定的步骤和格式: 数据类型 变量名 = new 数据类型(); 如:String st = new String(); ...

  6. 复习java基础第三天(集合:Collection、Set、HashSet、LinkedHashSet、TreeSet)

    一.Collection常用的方法: Java 集合可分为 Set.List 和 Map 三种体系: Set:无序.不可重复的集合. List:有序,可重复的集合. Map:具有映射关系的集合. Co ...

  7. Java基础知识(数据类型和集合)

    一.数据类型 包装类型 包装类型是对基本数据类型不足之处的补充. 基本数据类型的传递方式是值传递,而包装类型是引用传递,同时提供了很多数据类型间转换的方法. Java1.5 以后可以自动装箱和拆箱 二 ...

  8. java基础28 单例集合Collection下的List和Set集合

    单例集合体系: ---------| collection  单例集合的根接口--------------| List  如果实现了list接口的集合类,具备的特点:有序,可重复       注:集合 ...

  9. 【Java基础】【15Colletion集合】

    15.01_集合框架(对象数组的概述和使用) A:案例演示 需求:我有5个学生,请把这个5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息. Student[] arr = new Stu ...

随机推荐

  1. c# combobox向上展开

    1.问题情境:实际中的下拉框默认向下扩展,如果屏幕下方空间不足,会向上扩展. 向下扩展情况下,有时候会超出form窗体. 2.解决办法: 寻找相关属性无果. 退而求其次,重画item的框.发现Draw ...

  2. 项目Beta冲刺(团队)第四天

    1.昨天的困难 返回提问者昵称的时候返回信息不全,个别信息没有返回过去 一开始ProgressBar控件的显示有问题 需要实现类似聊天的功能,采用listview承载聊天内容,对于自定义适配器的构建使 ...

  3. 灵悟礼品网上专卖店——第三阶段Sprint

    一.小组成员: 洪雪意(产品负责人) 陈淑筠(Master) 二.组内人员任务情况 已完成的任务: 陈淑筠:主页面的设计 洪雪意:导航条的改进和页面中插入页面的功能 正在进行的任务: 陈淑筠:主页面的 ...

  4. gitlab邮箱服务配置

    配置邮箱服务的用途 有合并请求时,邮件通知 账号注册时,邮件验证 修改密码时,通过邮件修改 配置步骤: .开启QQ邮箱的smtp服务(不建议使用163邮箱,发几次之后,就不能发送) 设置-->账 ...

  5. [转帖]IPV6取代IPV4之路 为何道阻且长?

    IPV6取代IPV4之路 为何道阻且长? 经济学人公众号 IPV6作为IPV4的续命神术,从被提出到现今,逾26年之久.而IPV6在中国更是犹抱琵琶半遮面,千呼万唤难出来,IPV6取代IPV4之路,为 ...

  6. MicrosoftFixit50688 [Windows7事件ID10,WMI错误的解决方法

     Windows7事件记录中有如下错误提示: "Event filter with query "SELECT * FROM __InstanceModificationEve ...

  7. c++ 替换修改一个文件夹下的所有文件的文件名

    代码简洁,亲测可用. 1,首先来获取(输出)一个文件夹中所有的文件名 void getFiles(string path, vector<string>& files) { //文 ...

  8. 通过jmap查看jvm采用的垃圾收集器

    1  tomcat 的PID获得 ps -ef|grep tomcat [root@iZ2zeapch8kbaw4bxnz8vxZ tomcat7]# ps -ef|grep tomcat root ...

  9. java static{}块

    java中static{}块只有在类加载是才会被调用. 这说明:static只有可能被调用一次. 原因:首先理解什么是类加载,区分类加载和申明对象的区别. public class StaticTes ...

  10. P1110 [ZJOI2007]报表统计

    题目描述 Q的妈妈是一个出纳,经常需要做一些统计报表的工作.今天是妈妈的生日,小Q希望可以帮妈妈分担一些工作,作为她的生日礼物之一. 经过仔细观察,小Q发现统计一张报表实际上是维护一个非负整数数列,并 ...