首页 > 其他 > 详细

集合 Collection

时间:2019-12-16 13:59:09      阅读:69      评论:0      收藏:0      [点我收藏+]

最近开始全面的接触Java中的集合,觉得非常方便和有趣 但是在后面的应用中不是很熟练,有许多方法还是会不记得 或者说不会用

今天就是整理一些集合的用法,方便自己以后的查找和复习

Collection是所有集合的父类

集合的顶层接口,不能被实例化
a) 根接口Collection
 i. 常用子接口
  1. List
   实现类:ArrayList、Vector、LinkedList
  2. Set
   实现类:HashSet、TreeSet

为什么出现集合类?
* 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,用前面所学知识,我们只能采用对象数组实现。
* 但是,对象数组的长度又是固定的,适应不了变化的需求,所以,java就提供了集合类供我们使用。
* 集合类的特点:
* A:长度可变(数组长度固定)
* B:只能存储对象(引用数据类型) (数组既可以存储基本数据类型也可以存储引用数据类型)
* C:可以存储不同类型的对象 (数组只能存放单一类型)
*
* 面试题:数组和集合的区别?
* A:集合长度可变;集合只能存储引用数据类型;集合可以存储不同数据类型的元素
*B:数组长度固定;数组可以存储引用数据类型,也可以存储基本数据类型;数组存储的是同一种数据类型的元素
*
* 由于我们的功能需求不太一样,所以,java就提供了多种集合类供我们使用。这些集合类的本质区别:其实是底层的数据结构不同。
* 数据结构:数据的存储方式。
*
* 先学习父类
*
* Collection的功能:(所有集合类的父类,它是一组对象的容器,这些对象有 有序的 无序的 重复的 不能重复的)
* A:添加功能
* boolean add(Object obj):往集合中添加一个元素
* boolean addAll(Collection c):往集合中添加多个元素。
* B:获取功能
* Iterator iterator():迭代器
* int size():集合的元素个数,长度
* C:删除功能
* void clear():清空集合的所有元素
* boolean remove(Object obj):从集合中移除一个元素(ArraysList集合中 删除时 有重复的 只删除一个)
* boolean removeAll(Collection c):从集合中移除多个元素(只要有元素删除就显示true)
* D:判断功能
* boolean contains(Object obj):判断集合中是否包含指定的元素(必须是全部包含)
* boolean containsAll(Collection c):判断集合中是否包含指定的多个元素(全部包含才会返回true,包含一个或多个返回法false)
* boolean isEmpty():判断集合是否为空
* E:交集元素
* boolean retainAll(Collection c)true则代表第一个集合发生改变 false则表示两个集合是不一定是全交集,但是可以说明第一个集合没有发生改变
* F:转数组
* Object[] toArray():把集合转成对象数组


对于 集合的学习许多方法来自于 父类 中的方法 所以在学习集合时 先要学习父类详细了解父类中的方法
还要注意 也是我自己经常搞错的 当集合转数组时 用的是Object中的方法 toArray();
对于集合的遍历:有两种常见方法:1.迭代器的方式 next()(注意:数组之间是不能进行强转的)

2.通过转换为数组来实现遍历 toArray()

public class CollectionDemo {    public static void main(String[] args) {        // 创建集合
Collection c1 = new ArrayList();
c1.add("abc1");
c1.add("abc2");
c1.add("abc3");
c1.add("abc4");
// 创建集合
Collection c2 = new ArrayList();
// c2.add("abc1");
// c2.add("abc2");
// c2.add("abc3");
// c2.add("abc4");
c2.add("abc5");
c2.add("abc6");
c2.add("abc7");
System.out.println(c2);
System.out.println(c1);
// boolean addAll(Collection c)
// System.out.println("addAll:" + c1.addAll(c2));
// System.out.println(c1);
// boolean removeAll(Collection c)
// System.out.println("removeAll:" + c1.removeAll(c2));
// boolean containsAll(Collection c)
// System.out.println("containsAll:" + c1.containsAll(c2));
// boolean retainAll(Collection c)
System.out.println("retainAll:" + c1.retainAll(c2));
/*
* 如果我有两个集合A,B。用A对B做交集 交集元素存储在A集合,B集合不发生改变。
* 返回值表达是A集合是否发生过改变。
* A集合会发生改变
*/
System.out.println("c1:" + c1);


集合转换为数组
public class CollectionDemo2 {
public static void main(String[] args) {
Collection c= new ArrayList();
c.add("12");
c.add("hello");
c.add("world");
Object [] strs =c.toArray();
for (int i = 0; i < strs.length; i++) {
String str =(String)strs[i];//(数组之间不能进行强转)
System.out.println(str);
}
}
}



 


集合 Collection

原文:https://www.cnblogs.com/whitezhang/p/12048669.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!