集合介绍
1.1为什么需要Collection
集合类的出现:java是一门面向对象的语言,就免不了处理对象,为了方便操作多个对象,那么我们就得把这多个对象存储起来,想要存储多个对象(变量),很容易就能想到一个容器——-
常用的容器我们知道有—>StringBuffered,数组,但是由于数组的长度固定;访问方式单一,只能用下标;删除数据,数据不连续,需要往前移动数据;插入数据,数据要向后移动,这些缺点,
所以,java就为我们提供了集合(Collection).
1.2 数据和集合的区别
区别:
1.长度的区别
数组的长度固定;集合的长度可变。
2.内容的区别
数组存储的是同一种类型的元素
集合可以存储不同类型的元素(一般我们不这样做)
3.元素的数据类型
数组可以存储基本数据类型,和引用类型
集合只能存储引用类型(若是简单的int,它会自动装箱成Integer)
1.3Collection的由来与功能
Collection的由来:
集合可以存储多个元素,但是我们对多个元素也有不同的需求
- 多个元素,不能有相同的
- 多个元素,能够按照某个规则排序
针对不同的需求:java就提供了很多集合类,多个集合类的数据机构不同,但是,数据结构不重要,重要的是能够存储东西,能够判断,获取,把集合共性的内容不断往上提取,最终形成集合的继承体系.
Collection常用方法
所有单列结合的最顶层的接口,里面定义了所有单列集合共性的方法
任意的单列结合都可以使用Collection接口中的方法
共性的方法:
public boolean add(E e): 把给定的对象添加到当前集合中 。
public void clear() :清空集合中所有的元素。
public boolean remove(E e): 把给定的对象在当前集合中删除。
public boolean contains(E e): 判断当前集合中是否包含给定的对象。
public boolean isEmpty(): 判断当前集合是否为空。
public int size(): 返回集合中元素的个数。
public Object[] toArray(): 把集合中的元素,存储到数组中。
package com.itheima.demo01.Collection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
public class Demo01Collection {
public static void main(String[] args) {
//创建集合对象,可以使用多态
Collection<String> coll = new ArrayList<>();//有序可重复
// Collection<String> coll = new HashSet<>();// 无序不可重复
System.out.println(coll);//重写了toString方法 []
/*
public boolean add(E e): 把给定的对象添加到当前集合中 。
返回值是一个boolean值,一般都返回true,所有不用接收
*/
boolean b1 = coll.add("张三");
System.out.println("b1:" + b1);//b1:true
System.out.println(coll);//[张三]
coll.add("李四");
coll.add("王五");
coll.add("田七");
System.out.println(coll);//[张三, 李四, 王五, 田七]
/*
public boolean remove(E e): 把给定的对象在当前集合中删除。
返回值是一个boolean,集合中存在元素,删除元素.true
不存在元素,删除失败,返回false
*/
boolean b2 = coll.remove("张三");
System.out.println("b2:" + b2);//b2:true
boolean b3 = coll.remove("赵四");
System.out.println("b3:" + b3);//b3:false
System.out.println(coll);//[李四, 王五, 田七]
/*
public boolean contains(E e): 判断当前集合中是否包含给定的对象。
包含返回true
不包含返回false
*/
boolean b4 = coll.contains("李四");
System.out.println("b4:" + b4);//b4:true
boolean b5 = coll.contains("赵四");
System.out.println("b5:" + b5);//b5:false
//public boolean isEmpty(): 判断当前集合是否为空。
boolean b6 = coll.isEmpty();
System.out.println("b6:" + b6);//b6:false
//public int size(): 返回集合中元素的个数。
int size = coll.size();
System.out.println(size);//3
//public Object[] toArray(): 把集合中的元素,存储到数组中。
Object[] arr = coll.toArray();
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
//public void clear() :清空集合中所有的元素。但是不删除集合,集合还存在
coll.clear();
System.out.println(coll);//[]
System.out.println(coll.isEmpty());//trur
}
}