Java基础-引用数据类型之集合(Collection)
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)的更多相关文章
- Java 基础 引用数据类型 ArrayList集合
引用数据类型(类) 分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类.Random类. 我们可以把类的类型为两种: 第一种,Java为我们提供好的类,如Scanner类, ...
- java基础-引用数据类型之一维数组(Array)
java基础-引用数据类型之一维数组(Array) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组的定义 1>.为什么需要数组 保存一个数据可以定义一个变量,如果要保 ...
- java基础-引用数据类型之二维数组(Array)
java基础-引用数据类型之二维数组(Array) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前我们学习过了Java的一维数组,所谓的二维数组就是元素是一堆一维数组的数组,换 ...
- java基础27 单例集合Collection及其常用方法
1.集合 集合是存储对象数据的集合容器 1.1.集合比数组的优势 1.集合可以存储任意类型的数据,数组只能存储同一种数据类型的数据 2.集合的长度是变化的,数组的长度是固定的 1.2.数组:存储 ...
- Java 基础 引用数据类型 和 流程控制
引用数据类型 与定义基本数据类型变量不同,引用数据类型的变量定义及复制有一个相对固定的步骤和格式: 数据类型 变量名 = new 数据类型(); 如:String st = new String(); ...
- 复习java基础第三天(集合:Collection、Set、HashSet、LinkedHashSet、TreeSet)
一.Collection常用的方法: Java 集合可分为 Set.List 和 Map 三种体系: Set:无序.不可重复的集合. List:有序,可重复的集合. Map:具有映射关系的集合. Co ...
- Java基础知识(数据类型和集合)
一.数据类型 包装类型 包装类型是对基本数据类型不足之处的补充. 基本数据类型的传递方式是值传递,而包装类型是引用传递,同时提供了很多数据类型间转换的方法. Java1.5 以后可以自动装箱和拆箱 二 ...
- java基础28 单例集合Collection下的List和Set集合
单例集合体系: ---------| collection 单例集合的根接口--------------| List 如果实现了list接口的集合类,具备的特点:有序,可重复 注:集合 ...
- 【Java基础】【15Colletion集合】
15.01_集合框架(对象数组的概述和使用) A:案例演示 需求:我有5个学生,请把这个5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息. Student[] arr = new Stu ...
随机推荐
- c# combobox向上展开
1.问题情境:实际中的下拉框默认向下扩展,如果屏幕下方空间不足,会向上扩展. 向下扩展情况下,有时候会超出form窗体. 2.解决办法: 寻找相关属性无果. 退而求其次,重画item的框.发现Draw ...
- 项目Beta冲刺(团队)第四天
1.昨天的困难 返回提问者昵称的时候返回信息不全,个别信息没有返回过去 一开始ProgressBar控件的显示有问题 需要实现类似聊天的功能,采用listview承载聊天内容,对于自定义适配器的构建使 ...
- 灵悟礼品网上专卖店——第三阶段Sprint
一.小组成员: 洪雪意(产品负责人) 陈淑筠(Master) 二.组内人员任务情况 已完成的任务: 陈淑筠:主页面的设计 洪雪意:导航条的改进和页面中插入页面的功能 正在进行的任务: 陈淑筠:主页面的 ...
- gitlab邮箱服务配置
配置邮箱服务的用途 有合并请求时,邮件通知 账号注册时,邮件验证 修改密码时,通过邮件修改 配置步骤: .开启QQ邮箱的smtp服务(不建议使用163邮箱,发几次之后,就不能发送) 设置-->账 ...
- [转帖]IPV6取代IPV4之路 为何道阻且长?
IPV6取代IPV4之路 为何道阻且长? 经济学人公众号 IPV6作为IPV4的续命神术,从被提出到现今,逾26年之久.而IPV6在中国更是犹抱琵琶半遮面,千呼万唤难出来,IPV6取代IPV4之路,为 ...
- MicrosoftFixit50688 [Windows7事件ID10,WMI错误的解决方法
Windows7事件记录中有如下错误提示: "Event filter with query "SELECT * FROM __InstanceModificationEve ...
- c++ 替换修改一个文件夹下的所有文件的文件名
代码简洁,亲测可用. 1,首先来获取(输出)一个文件夹中所有的文件名 void getFiles(string path, vector<string>& files) { //文 ...
- 通过jmap查看jvm采用的垃圾收集器
1 tomcat 的PID获得 ps -ef|grep tomcat [root@iZ2zeapch8kbaw4bxnz8vxZ tomcat7]# ps -ef|grep tomcat root ...
- java static{}块
java中static{}块只有在类加载是才会被调用. 这说明:static只有可能被调用一次. 原因:首先理解什么是类加载,区分类加载和申明对象的区别. public class StaticTes ...
- P1110 [ZJOI2007]报表统计
题目描述 Q的妈妈是一个出纳,经常需要做一些统计报表的工作.今天是妈妈的生日,小Q希望可以帮妈妈分担一些工作,作为她的生日礼物之一. 经过仔细观察,小Q发现统计一张报表实际上是维护一个非负整数数列,并 ...