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. Scrum Meeting 11.11

    成员 今日任务 明日计划 用时 徐越 学习UI设计并重构上传下载界面     赵庶宏       薄霖 UI代码更新     卞忠昊 Xfermode与PorterDuff     武鑫 界面设计:独 ...

  2. 软工1816 · Beta冲刺(6/7)

    团队信息 队名:爸爸饿了 组长博客:here 作业博客:here 组员情况 组员1(组长):王彬 过去两天完成了哪些任务 推进Web端完成开发 推进修改一些后端接口的逻辑 着手制作视频 接下来的计划 ...

  3. Scanner的例子

    package com.firstDay.one; import java.util.Scanner; public class Information { /** * @param args */ ...

  4. sprintf函数 %6.2f

    %6.2f6表示数据表示至少6位,后面的.2表示小数点后保留两位 比如2342.123415用这个表示的话,结果就是2342.12如果不足六位就会在前面补空格超过六位的话正常显示 代码例子:int m ...

  5. ansible的简单使用

    环境搭建跳过(暂无,这个以后再学习学习,不要在意这些细节) 首先,在环境搭建好后,用两台虚机来做测试,一台192.168.181.130做测试机,一台192.168.181.131为批量处理服务器 编 ...

  6. vm的三种网络模式

    Vm网卡的模式:网络地址转换模式(nat),仅主机(host-only),桥接模式(Brideged) VMware 的几个虚拟设备: ■ VMnet0:这是 VMware 用于虚拟桥接网络下的虚拟交 ...

  7. how to disabled iframe page open new window / new tab

    how to disabled iframe page open new window / new tab 禁用 iframe 中的页面打开新页面 <!DOCTYPE html> < ...

  8. 一个不错的微信应用JS API库

    1.API能实现什么? 1.分享到微信朋友圈 2.分享给微信好友 3.分享到腾讯微博 4.新的分享接口,包含朋友圈.好友.微博的分享(for iOS) 5.隐藏/显示右上角的菜单入口 6.隐藏/显示底 ...

  9. UVAlive4080_Warfare And Logistics

    给一个无向图,求出两个值,所有点到所有其他点的最短距离和,任意删除一条边后的这个值. 数据规模是100点1000边. 白书例题,不多说了直接对于每个点求出最短路树,对于每条边,如果它不是最短路树上的边 ...

  10. poj3320 Jessica's Reading Problem

    Description Jessica's a very lovely girl wooed by lots of boys. Recently she has a problem. The fina ...