集合框架
为了实现某一目的和功能而预先设计好的一系列封装好的具有继承或实现关系的类和接口
Java中对一些数据接口和算法进行了封装,即集合,集合也是一种用于存储,检索和传输对象
list列表
特点:线性,即有序(元素的放入顺序与存储顺序保持一致)
表象上list的最大特点就是有下标,ArrayList就是一个封装数组
linklist底层封装的是一个链表,(具有双向性)
当需要做大量查询动作是使用arraylist;
当需要做大量增删动作时使用linklist;
遍历:将集合中每个元素依次取出,做同样的操作(以前使用for循环)
迭代器:是集合框架类collection直接分支专用,特点是没有下标,从头到尾走一遍
foreach循环
底层封装的就是迭代器,但语法更简单还可以操作数组
int [] arraylist = new ArrayList[9];
for(int a : arraylist){
System.out.println(a);
}
Set.集
特点----不能放置重复的元素,无序。表象上Set没有下标
如何判断元素不重复?
1.调用equals方法得到两个对象比较为True
2.两个元素的HashCode值保持一致
只有满足这两个条件时,java才认为这是同一个对象,所以重写equals的时候也要重写hashCode方法
常用子类HashSet
增加---还是使用.add();添加值
删除---只能根据对象进行删除,还是用.remove,不能获得某个指定的元素
取出---不支持for循环,可以用Iterator和foreach遍历返回object
修改---没有修改方法
Map.映射
特点:键值对,键要求唯一,值可以重复,放入的顺序与存储顺序无关
常用子类:hashMap(主要对集合操作)Properties (主要是对属性文件操作)
增加---使用.put(键,值),没有add方法
长度---使用.size;
修改---map.put()键不变,直接放入值
删除---使用.remove(),输入对应的键即可
获取---使用map.get(),输入对应的键即可
遍历Map:不能同时遍历键和值,只能分开遍历
1.遍历所有的键:
Set<String> keyset = map.keyset();
for(String key : keyset){
System.out.prinyln(key)
}
2.遍历所有的值:
Collection〈stndentBean〉allStu = map.values();
for(studentBean tmpstu : allStu){
System.out.println(tmpstu)
}
collections.工具算法类
可以求集合的最大值和最小值,排序,和打乱,倒序等
只能比较List排序
比较器:
comparable:内部比较器,指元素中带有的比较器
collections.sort(lst);自带内部比较器
comparator:外部比较器,指元素外部调用的比较器
collections.sort(lst,new studentcomparator);连接外部的比较器
collections.shuffer(lst);是随机打乱排序。