Java(集合框架)笔记

1、集合框架(Collection and Map  集合于映射, 容器类)
1)List 元素有先后次序的集合 元素有index位置, 元素
可以重复  继承于Collection接口, 实现类:ArrayList,
Vector , LinkedList

ArrayList与Vector的区别:
ArrayList不是线程安全  Vector是线程安全的
ArrayList与Vector都有一个初始的容量的大小
Vector的增长是增长自己的2倍
ArrayList在源代码中是增长自己的1.5倍
Vector可以自定义初始容量的大小
ArrayList不可以自定义初始容量的大小

2)Set元素无序, 不能重复添加 是数学意义上的集合 继承与Collection
接口, 实现类:HashSet(是一个只有key的HashMap) 
3)Collection集概念, 没有说明元素是否重复和有序 使用集合的根接口


很少直接使用 其他集合都是实现类:ArrayList, HashSet
4)Map 描述了:(key:value)成对放置的集合, key不重复
Value可以重复 ,key重复算一个 实现类:HashMap(散列表算法实现)
TreeMap(二叉排序树实现 利用key排序) Map适合检查查找
2、java泛型  
1)java5以后提出的语法现象, 在编译期间检查的类型约束 运行期
不检查泛型
2)可以用来约束类中元素的类型
3、HashMap vs Hashtable
HashMap 新  非线程安全  不检查锁  快
Hashtable 旧  线程安全  检查锁  慢一点
4、集合的迭代(遍历算法)(模仿了数鸡蛋的方法)
1、java使用Iterator接口描述了迭代模式操作
Iterator中的方法模式化设计 专门配合while循环操作
2、 Iterator的实例可以从集合对象获得 是这个集合的一个
元素序列视图  默认包含了一个操作游标 在第一个元素之前
hasNext()方法 可以检查游标是否有下一个元素  next()方法
移动游标到下一个元素并且返回这个元素引用 使用while配合
这两个方法  可以迭代处理集合的所有元素
3、迭代时候可以利用迭代器remove()方法 删除刚刚迭代的元素
在迭代过程中 不能使用集合方法(add, remove, set)更改集合
元素
5、Collections  集合的工具类  , Arrays数组的工具类
排序(sort 按自然排序 从大到小)  二分查找(binarySearch) 
打乱(shuffle)  填充(addAll)
6、比较大小
Compareble可以比较的 用于类实现 实现这个接口表示:这个类的
实例可以比较大小的 可以进行自然排序   Comparable的实现必须
与equals()的结果一致 就是相等的对象比较结果一定是 0


Comparator比较工具, 用于临时定义比较规则 不是默认比较规则
7、java中的包装类
包装类可以把基本类型包装为对象类型
有八种包装类
int  Integer
long Long
byte Byte
short Short
float Float
double Double
boolean Boolean
char Character
自动包装(auto boxing/ unboxing)
Integer i = 2;// i = new Integer(2)
Object o = 3.5
包装类是fianl类
包装类的对象是不变的 与字符串类似(不变模式)
包装类覆盖了toString  equals  hashcode compareTo

猜你喜欢

转载自blog.csdn.net/u011073924/article/details/38281857