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()方法【往集合中添加元素】
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 package cn.org.yinzhengjie.demo; 8 9 import java.util.ArrayList; 10 import java.util.Collection; 11 12 public class CollectionDemo { 13 public static void main(String[] args) { 14 //接口多态的方式调用 15 Collection<String> coll = new ArrayList<String>(); 16 //存储数据 17 coll.add("yinzhengjie"); 18 coll.add("alex"); 19 coll.add("Big data"); 20 System.out.println(coll); 21 } 22 } 23 24 25 /* 26 以上代码执行结果如下: 27 [yinzhengjie, alex, Big data] 28 */
2>.clear()方法【清空集合的内容】
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 package cn.org.yinzhengjie.demo; 8 9 import java.util.ArrayList; 10 import java.util.Collection; 11 12 public class CollectionDemo { 13 public static void main(String[] args) { 14 //接口多态的方式调用 15 Collection<String> coll = new ArrayList<String>(); 16 //存储数据 17 coll.add("yinzhengjie"); 18 coll.add("alex"); 19 coll.add("Big data"); 20 System.out.println(coll); 21 //清空集合内容 22 coll.clear(); 23 System.out.println(coll); 24 } 25 } 26 27 28 /* 29 以上代码执行结果如下: 30 [yinzhengjie, alex, Big data] 31 [] 32 */
3>.Contains(Object o )方法【判断对象是否存在于集合中】
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 package cn.org.yinzhengjie.demo; 8 9 import java.util.ArrayList; 10 import java.util.Collection; 11 12 public class CollectionDemo { 13 public static void main(String[] args) { 14 //接口多态的方式调用 15 Collection<String> coll = new ArrayList<String>(); 16 //存储数据 17 coll.add("yinzhengjie"); 18 coll.add("alex"); 19 coll.add("Big data"); 20 //查询集合是否存在“yinzhengjie”这个字符串 21 boolean b = coll.contains("yinzhengjie"); 22 System.out.println(b); 23 } 24 } 25 26 27 /* 28 以上代码执行结果如下: 29 true 30 */
4>.size()方法【查看集合的长度】
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 package cn.org.yinzhengjie.demo; 8 9 import java.util.ArrayList; 10 import java.util.Collection; 11 12 public class CollectionDemo { 13 public static void main(String[] args) { 14 //接口多态的方式调用 15 Collection<String> coll = new ArrayList<String>(); 16 //存储数据 17 coll.add("yinzhengjie"); 18 coll.add("alex"); 19 coll.add("Big data"); 20 //查看集合的大小 21 int length = coll.size(); 22 System.out.println(length); 23 } 24 } 25 26 27 /* 28 以上代码执行结果如下: 29 3 30 */
5>.toArray()方法【返回的是一个存储对象的数组,数组的存储数据类型是Object】
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 package cn.org.yinzhengjie.demo; 8 9 import java.util.ArrayList; 10 import java.util.Collection; 11 12 public class CollectionDemo { 13 public static void main(String[] args) { 14 //接口多态的方式调用 15 Collection<String> coll = new ArrayList<String>(); 16 //存储数据 17 coll.add("yinzhengjie"); 18 coll.add("alex"); 19 coll.add("Big data"); 20 21 //将集合转换成一个数组 22 Object[] array = coll.toArray(); 23 for (Object object : array) { 24 System.out.println(object); 25 } 26 } 27 } 28 29 30 /* 31 以上代码执行结果如下: 32 yinzhengjie 33 alex 34 Big data 35 */
6>.remove方法【移除集合中指定的元素,若有多个想用元素就删除第一个匹配到的元素】
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 package cn.org.yinzhengjie.demo; 8 9 import java.util.ArrayList; 10 import java.util.Collection; 11 12 public class CollectionDemo { 13 public static void main(String[] args) { 14 //接口多态的方式调用 15 Collection<String> coll = new ArrayList<String>(); 16 //存储数据 17 coll.add("yinzhengjie"); 18 coll.add("alex"); 19 coll.add("Big data"); 20 coll.add("yinzhengjie"); 21 22 System.out.println(coll); 23 24 boolean b = coll.remove("yinzhengjie"); 25 System.out.println(b); 26 System.out.println(coll); 27 } 28 } 29 30 31 /* 32 以上代码执行结果如下: 33 [yinzhengjie, alex, Big data, yinzhengjie] 34 true 35 [alex, Big data, yinzhengjie] 36 */
7>.addAll(Collection c)方法【将一个集合中的所有元素添加到当前集合中】
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 package cn.org.yinzhengjie.demo; 8 9 import java.util.ArrayList; 10 import java.util.Collection; 11 12 public class CollectionDemo { 13 public static void main(String[] args) { 14 //接口多态的方式调用 15 Collection<String> coll = new ArrayList<String>(); 16 //存储数据 17 coll.add("yinzhengjie"); 18 coll.add("alex"); 19 coll.add("Big data"); 20 coll.add("yinzhengjie"); 21 22 System.out.println(coll); 23 24 Collection coll2 = new ArrayList(); 25 coll2.add("1"); 26 coll2.add("2"); 27 coll2.add("3"); 28 System.out.println(coll2); 29 boolean res = coll.addAll(coll2); 30 System.out.println(res); 31 System.out.println(coll); 32 } 33 } 34 35 36 /* 37 以上代码执行结果如下: 38 [yinzhengjie, alex, Big data, yinzhengjie] 39 [1, 2, 3] 40 true 41 [yinzhengjie, alex, Big data, yinzhengjie, 1, 2, 3] 42 */
8>.removeAll(Collection c)方法【删除与传入集合共有的元素】
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 package cn.org.yinzhengjie.demo; 8 9 import java.util.ArrayList; 10 import java.util.Collection; 11 12 public class CollectionDemo { 13 public static void main(String[] args) { 14 //接口多态的方式调用 15 Collection<String> coll = new ArrayList<String>(); 16 //存储数据 17 coll.add("yinzhengjie"); 18 coll.add("alex"); 19 coll.add("Big data"); 20 coll.add("yinzhengjie"); 21 22 System.out.println(coll); 23 24 Collection coll2 = new ArrayList(); 25 coll2.add("yinzhengjie"); 26 coll2.add("alex"); 27 System.out.println(coll2); 28 boolean res = coll.removeAll(coll2); 29 System.out.println(res); 30 System.out.println(coll); 31 } 32 } 33 34 35 /* 36 以上代码执行结果如下: 37 [yinzhengjie, alex, Big data, yinzhengjie] 38 [yinzhengjie, alex] 39 true 40 [Big data] 41 */
9>.containsAll(Collection c)【判断一个集合是否包含另外一个集合】
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 package cn.org.yinzhengjie.demo; 8 9 import java.util.ArrayList; 10 import java.util.Collection; 11 12 public class CollectionDemo { 13 public static void main(String[] args) { 14 //接口多态的方式调用 15 Collection<String> coll = new ArrayList<String>(); 16 //存储数据 17 coll.add("yinzhengjie"); 18 coll.add("alex"); 19 coll.add("Big data"); 20 coll.add("yinzhengjie"); 21 22 Collection coll2 = new ArrayList(); 23 coll2.add("yinzhengjie"); 24 coll2.add("alex"); 25 System.out.println(coll2); 26 boolean res = coll.containsAll(coll2); 27 System.out.println(res); 28 System.out.println(coll); 29 } 30 } 31 32 33 /* 34 以上代码执行结果如下: 35 [yinzhengjie, alex] 36 true 37 [yinzhengjie, alex, Big data, yinzhengjie] 38 */
10>.isEmpty()方法【判断集合是否为空】
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 package cn.org.yinzhengjie.demo; 8 9 import java.util.ArrayList; 10 import java.util.Collection; 11 12 public class CollectionDemo { 13 public static void main(String[] args) { 14 //接口多态的方式调用 15 Collection<String> coll = new ArrayList<String>(); 16 //存储数据 17 coll.add("yinzhengjie"); 18 System.out.println(coll.isEmpty()); 19 20 } 21 } 22 23 24 /* 25 以上代码执行结果如下: 26 false 27 */
本文来自博客园,作者:尹正杰,转载请注明原文链接:https://www.cnblogs.com/yinzhengjie/p/8921315.html,个人微信: "JasonYin2020"(添加时请备注来源及意图备注,有偿付费)
当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生。