数组和集合都是用于存储一组数据的数据结构
数组是一个固定大小的容器,可以存储相同类型的多个元素。在内存中,数组的元素通常是连续存储的,可以通过下标来访问每个元素。数组的优点是访问速度快,缺点是插入和删除元素较慢,因为需要移动其他元素的位置。
集合是一个动态大小的容器,可以存储不同类型的元素。在内存中,集合的元素通常是按照哈希值分散存储的,可以通过键来访问每个元素。集合的优点是插入和删除元素速度快,缺点是访问速度相对较慢。
一、集合
1、java集合框架
①java.util.Collection接口,是所有集合的顶级接口,规定了集合所必须的功能
②集合与数组一样,可以保存一组具有相同类型元素数据结构,并且提供了对于元素的维护操作(方法)
③集合有多种不同的数据结构可供日后开发选择使用
④集合创建不需要指定长度
⑤集合中所存放的是对象的引用,所以当改变时,集合的值也会改变
2、collection接口
// Collection下面有很多细分的集合类,常见的两个子类别(下述两个也是接口):
* java.util.List;//List代表的是可重复且有序的集合
* java.util.Set;//Set代表的是不可重复的无序集合
Collection c=new ArrayList();
Collection c = new HashSet()//方法与ArrayList一样
①add()-添加
boolean add(E e)集合提供了添加元素的方法,如果元素成功存入集合则返回true。
Collection c=new ArrayList();
c.add("one");//集合重写toString方法,否则会输出地址
②size()、isEmpty()、clear()-个数、空集、清空
int size=c.size();//返回当前集合元素个数
boolean isEmpty=c.isEmpty();//判断当前集合是否为空集,当且仅当size为0时,该方法返回true
c.clear();//清空集合元素
③contains()-包含
Point p=new Point(1,2);//contains方法用于检查一个集合是否包含某个元素
boolean contains=c.contains(p);//————重写equals方法
* 判断当前集合是否包含给定元素,若包含则返回true,否则返回false
* 这里判断包含的逻辑是:给定元素是否与集合现有元素存在equals比较为true的情况,如果有则认为包含该元素。否则为不包含。
如果不重写equals()方法,就只是比较两个对象的引用是否相等;重写该元素对应的类的equals()方法,contains()方法才能够通过比较对象的内容来确定它们是否相等,而不仅仅是比较它们的引用
④remove()-删除
c.remove(p);//删除当前集合中给