更新时间:2018-09-06 来源:黑马程序员技术社区 浏览量:
概念:集合类主要负责保存、封装其他数据,因此集合类也被称为容器类。
1.储存对象可以考虑:1数组2集合。
2.数组储存对象的特点。student[] stu=new student [20];
>>弊端1.一旦创建,其长度不变。2.真实的数组存放的对象的个数是不可知的。
3.集合:分为collection和map两种体系
注意:
①、集合只能存放对象。比如你存一个 int 型数据 1放入集合中,其实它是自动转换成 Integer 类后存入的,Java中每一种基本类型都有对应的引用类型。
②、集合存放的是多个对象的引用,对象本身还是放在堆内存中。
③、集合可以存放不同类型,不限数量的数据类型。
Collection接口:
List接口:存储元素无序、不可重复的集合 ---类似高中的“集合”
---ArrayList(主要的实现类),LinkedList,vector
Set接口:存储元素有序,可重复的集合 ---”动态”数组(无序性!=随机性)
----HashSet,LinkedHashSet,TreeSet
Collection使用的例子:
添加元素:collection.add("");
删除指定元素:collection.remove("");
删除所有元素(collection.clear): Collection c = new ArrayList(); c.add("Bob"); collection.removeAll(c);
判断是否为空:collection.isEmrty();
判断集合中的元素是否完全相同:equals(Object obj)
利用增强for循环遍历集合: for(Object obj : collection){ System.out.println(obj); }
利用迭代器:Iterator: Iterator iterator = collection.iterator();
while(iterator.hasNext()){
Object obj = iterator.next();
System.out.println(obj);
}
1.Iterator:迭代器,它是Java集合的顶层接口(不包括 map 系列的集合,Map接口 是 map 系列集合的顶层接口)
Object next():返回迭代器刚越过的元素的引用,返回值是 Object,需要强制转换成自己需要的类型
boolean hasNext():判断容器内是否还有可供访问的元素
void remove():删除迭代器刚越过的元素
2.ArrayList,List主要的实现类:
LIst常用方法:void add(int index, Object ele) :在指定的索引index为只添加元素ele(插)
Object get(int index) 获取指定的元素(查)
int indexOf(Object obj) :返回obj在集合中首次出现的位置,没有的话返回-1,(获得指定对象的索引)
int lastIndexOf(Object obj) :返回obj在集合中最后一次出现的位置,没有的话返回-1,
Object remove(int index) 删除指定索引位置的元素(删)
Object set(int index, Object ele) 设置指定索引位置的元素(改)
List subList(int fromIndex, int toIndex)返回从fromIndex到toindex结束的一个list
3.HashSet,Set主要的实现类:(Set接口是Collection的子接口,set接口没有提供额外的方法)
特点:不能保证元素的顺序;不可重复;不是线程安全的;集合元素可以为 NULL;
Set hashSet = new HashSet();
Map接口:存储“键-值”对的数据;
1.具有映射关系“key-value对”的集合 ---类似于高中的“函数” y = f(x) (x1,y1) (x2,y2)。key相当于变量value相当于因变量。严格来说 Map 并不是一个集合,而是两个集合之间 的映射关系。
2.因为 Map 集合即没有实现于 Collection 接口,也没有实现 Iterable 接口,所以不能对 Map 集合进行 for-each 遍历。
Map遍历:
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19