黑马程序员——集合笔记
来源:互联网 发布:淘宝大学商学院杭州 编辑:程序博客网 时间:2024/06/08 05:43
------- android培训、java培训、期待与您交流! ----------
java集合笔记
<img src="http://img.blog.csdn.net/20151227165114287?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
一、定义:用来存放不同类型的对象,长度是可以变的
connection有两个子类:List,Set
list(允许元素重复),set(不允许元素 重复)
List的子类:ArrayList,LinkedList,Vector
Set的子类:HashSet,TreeSet
为什么会出现这么多容器呢?
因为每一个容器对数据的存储方式不同,这个储存方式叫:数据结构。
ArrayList集合:
创建集合:
ArrayList al=newArrayList();
二、集合中的常用方法:
add();添加元素
add方法参数类型都是Object 便于接收任何类型对象,并且集合中存储的都是引用地址。
size();获取长度
remove();删除
clear();清空集合
contains(obj);判断集合是否存在参数中的元素
isEmpty();判断是否为空
retainAll(List);获取这两个集合的交集
removeAll(list);把两个集合的交集去掉
三、元素的迭代输出Iterator
Iteratorit=al.iterator();创建一个迭代器it
当集合中有元素的时候,取出集合中的元素
while(it.hasNext()){
it.next();
}
每个集合的数据结构不同,取出的方式不同,所以定义 了一个内部类,用于取出集合元素,这些取出元素的动作都有一个共性:判断、取出,所以把取出方式进行共性抽取,所以抽取出来定义成了一个接口,Iterator。通过iterator()方法可以获取这个取出对象的类,然后用这个类进行取出元素。这就是内部类设计的好处
另外一种写法:
for(Iterator it=al.iterator();it.hasNext();){
it.next();
}这种写法迭代输出,循环完之后内存释放了,而while循环之后it的对象还在内存,所以,对于内存优化来说,写for循环比较好
四、List集合特有的迭代器ListIterator,它是Iterator的子接口
在迭代时,不可以通过集合对象的方法操作集合的元素,所以在迭代时,只能用迭代器的方法操作元素。
ListIteratorli=al.listIterator();这个迭代器增删改查都有,所以这个类出现以后就可以在遍历过程中进行增删改查了
五、Vector 的迭代器Enumeration
Enumeration和Iteratro的用法类似用while循环迭代集合内容。枚举和迭代一样的,只不过枚举的方法名字太长了
六、LinkedList特有方法
addFirst()把元素添加到第一个
addLast();把元素添加到最后一个
getFirst();得到第一个元素
getLast();得到最后一个元素
removeFirst()移除第一个
removeLast();移除最后一个
pollFirst()方法可以代替removeFirst()方法,如果集合没有元素,可以返回null值
peekFirst代替getFirst,如果集合没有元素,可以返回null值
offerFirst代替addFirst,
而add,get,remove,没有元素会抛异常
- 【黑马程序员】 java笔记——集合
- 黑马程序员——集合笔记
- 黑马程序员—集合
- 黑马程序员—集合
- 黑马程序员—集合
- 黑马程序员—集合
- 黑马程序员—集合
- 黑马程序员—集合
- 黑马程序员—集合
- 黑马程序员—集合
- 黑马程序员——【学习笔记】集合——泛型
- 黑马程序员——Java集合框架—整理笔记
- 黑马程序员 笔记(十三)——集合框架
- 黑马程序员——集合学习笔记(一)
- 黑马程序员——集合学习笔记(二)
- 黑马程序员——集合学习笔记(三)
- 黑马程序员_JavaAPI——集合框架笔记总结
- 黑马程序员_JAVA笔记16——集合(Map)
- ASP.NET中使用UpdatePanel实现局部异步刷新方法和攻略
- zzuli 1068《二进制数》
- 字符转整型
- javascript下的DOM命令:css,href,arc
- 使用Opatch给oracle打补丁
- 黑马程序员——集合笔记
- StackTrace和StackFrame使用笔记
- 解决:efi usb device has been blocked by the current security policy
- 软件测试原则
- iOS之block使用小结、在arc中使用block、如何防止循环引用
- centos文件和windows文件共享
- lightoj1085 All Possible Increasing Subsequences
- Android 数据存储(二) 共享参数存储
- poj3368线段树