泛型和容器二
来源:互联网 发布:otsu算法 编辑:程序博客网 时间:2024/06/05 02:48
由于昨晚只讲到迭代,今晚继续,在Iterator中还有ListIterator这个更加强大的迭代器子类型,相对于Iterator只能向前移动,它是双向移动!并可以通过ListIterator(n);产生一个指向索引的ListIterator.
在LinkedList中还添加了使其作用于栈,队列,双端队列的方法.在这里,注意,getFirst()和peek(),removeFirst()和poll()是有区别的,getFirst()和removeFirst()在列表为空时抛出异常,而peek()和poll()则是返回null值.
下面关于栈,之前我是模糊的,因为接触少的原因吧,但是要明白栈是后进先出的原则,它常用的方法,push(),peek(),pop()的区别,push()压栈,即把元素放入,peek()和pop()都是返回栈顶元素,区别是pop()是直接移除栈顶元素了.
接着对昨天set进行补充,set具有和collection完全一样的接口,实际上set就是collection,只是行为不同,在set中通过复杂的判断使其不会存在重复元素,其中在存储过程中,HashSet出于速度的原因使用了散列函数,TreeSet用了红-黑树数据结构,而LinkedHashSet也是用了三列,但是看起来它使用了链表来维护插入顺序.
最后,有关map,由于其特殊的存储方式(键值对,并且键是唯一性),将给他更加强大的功能,在日后的编程中有关多维数组,对象集合等等一系列内容都可以用map解决掉.下面给出一个书上有趣内容:
public class MapTest{
public static void main(String[] args){
Random rd = new Random(6);
Map<Integer,Integer> mm = new HashMap<Integer,Integer>();
for(int i = 0; i<10000,i++){
int n = rd.nextInt(22);
Integer m = mm.get(n);
mm.put(n,m==null?1:m+1);
}
System.out.println(mm);
}
}
程序中使用了int的包装类型Integer,并发生了对Integer的包装和拆包.有关包装和拆包之后再说,有兴趣的可以百度了解.
- 泛型和容器二
- 容器和泛型
- Java 容器和泛型 认识容器
- 泛型和容器三
- C++ 学习笔记 2.1 : 容器和算法(顺序容器、关联容器、泛型算法)
- 容器和泛型的简单介绍
- 黑马程序员--Java 泛型和容器
- 泛型和容器(1)——Collection接口和容器的打印
- 容器(二):队列容器Vector
- 三 关联式容器(二)map和multimap
- Extjs4循序渐进(二)—Ext的界面(容器和布局)
- Java 容器 & 泛型:二、ArrayList 、LinkedList和Vector比较
- Docker镜像和容器操作(二)
- Docker镜像和容器系列(二)- 操作详解
- Docker实战(二):容器使用和镜像制作
- Java 容器 & 泛型:二、ArrayList 、LinkedList和Vector比较
- STL容器之泛型容器
- 黑马程序员_Set集合容器和泛型
- 【MongoDB】Aggregation Pipeline——聚合管道
- [模板]乘法逆元
- Java语言程序设计 第13章
- Java常用类与集合总结@2017.11.04-11.05
- NOIP 2010 引水入城 (BFS,DP)
- 泛型和容器二
- Eclipse Ctrl + T in IntelliJ IDEA
- python 时间模块小结(time and datetime)
- C语言:基本数据类型
- CSS中clear:left/right的含义及用法
- 事务记录
- 6.9
- 一点小结fpga仿真实测不一致
- Unity之C#——用单例实现一个游戏内部的音效控制器