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. imooc-c++学习感悟

    imooc--慕课网c++课程链接:[课程链接](http://www.imooc.com/course/list?c=C+puls+puls) Imooc 慕课网c++学习感悟 1.课程名称:c++ ...

  2. Codeforces Round #299 (Div. 2) D. Tavas and Malekas kmp

    题目链接: http://codeforces.com/problemset/problem/535/D D. Tavas and Malekas time limit per test2 secon ...

  3. 【图论】POJ-3255 次短路径

    一.题目 Description Bessie has moved to a small farm and sometimes enjoys returning to visit one of her ...

  4. eg_7

    1. 给定Map,根据Map中的值从大到小排列 package com.studentmanager.www; import java.util.ArrayList; import java.util ...

  5. Good Time 冲刺 一

    2018/6/14 我们组之前没有开发小程序的经验,所以在尝试中不断探索与学习.在完成小程序的初步注册和界面完善后,我们组开始进行开发任务. 1.1成员简述: 王怡镔:“今天主要学习小程序开发知识及相 ...

  6. vue 实战报错解决方案

    最近做项目,遇到一个问题 列表滚动,上拉加载功能 采用了better-scroll 插件,将better-scroll 封装成组件,采用父组件传递值给子组件的方式,子组件 采用$emit 方式 通知父 ...

  7. Python多线程获取返回值

    在使用多线程的时候难免想要获取其操作完的返回值进行其他操作,下面的方法以作参考: 一,首先重写threading类,使其满足调用特定的方法获取其返回值 import threading class M ...

  8. 【Linux笔记】ps、kill、netstat、nohup、screen

    1.ps 命令,用于查看当前正在运行的进程,使用该命令可以确定有哪些进程正在运行和运行的状态.进程是否结束.进程有没有僵尸.哪些进程占用了过多的资源等等. 语法: ps [options] 示例: p ...

  9. mock测试SpringMVC controller报错

    使用mock测试Controller时报错如下 java.lang.NoClassDefFoundError: javax/servlet/SessionCookieConfig at org.spr ...

  10. POJ1637_Sightseeing tour

    给一个联通图,有的是单向边,有的是双向边,问是否存在欧拉回路. 乍一看毫无思路,可以这样来搞,对于每条无向边,我们随便指定一个方向,看看是否能够做到所有点的度数之和为偶数. 接下来,对于我们指定的边, ...