1.集合
1.ArrayList去除集合中的重复元素
集合在存储自定义对象的时候.要求自定义对象必须要重写equals方法,因为集合中的contains方法和remove方法需要
依赖元素的equals方法才能实现效果.
2.LinkedList:(了解)
addFirst(Object): 把元素添加到第一个位置
addLast(Object): 把元素添加到集合的后面
removeFirst(): 删除第一个元素.
removeLast(): 删除集合中最后一个元素
getFirst(): 获取集合中的第一个元素
getLast(): 获取集合中的最后一个元素
3.数据结构:
1.栈结构:
特点: 先进后出
2.队列结构:
特点: 先进先出.
2.泛型:
1.未知的数据类型.在使用的时候才指定数据类型(JDK1.5的新特性)
2.泛型的好处:
1.提高安全性(把运行时的异常提前到编译期了)
2.省去了强转的麻烦.
3.注意事项:
1.前后的泛型要一致(后面可以省略不写,只写尖括号即可,菱形泛型(JDK1.7的新特性))
2.泛型定义为Object是没有意义的.
3.泛型必须是引用数据类型
4.泛型的使用:
1.必须要会在集合中使用泛型!!
2.泛型中需要了解的内容:
1.泛型类.(在定义类的时候在类上面声明一个泛型)\
2.泛型方法:
1.非静态方法: 可以使用类上面的泛型, 也可以自己定义一个泛型
2.静态方法: 不可以使用类上面的泛型, 必须要自己定义一个泛型.
3.泛型接口:
在定义接口的时候在接口上声明一个泛型.
可以在什么时候确定泛型的类型?
1.在定义类实现接口时,就指定该泛型的类型.
2.在定义类时也给类指定一个跟接口中的泛型一致的泛型
4.定义泛型的注意事项:
1.不要使用JDK提供的类的类名作为泛型,容易混淆..
5.泛型通配符.(了解)
3.集合加强
1.增强for
格式:
for(数据类型 变量名:数组或者Collection集合){
//........
}
底层是依赖迭代器(Iterator)
作用:简化遍历
2.三种遍历方式:
1.普通for循环遍历:
可以在遍历的过程中删除元素(使用集合中的删除方法)
2.迭代器遍历:
可以在遍历的过程中删除元素(使用迭代器中的删除方法)
3.增强for遍历:
不可以在遍历的过程中删除元素
3.静态导入:
只能导入静态方法
格式:
import static 包名.类名.方法名;
不推荐使用!
4.可变参数:(定义在方法上)
格式: 数据类型...变量名
可变参数实际上就是一个数组.
1.如果一个方法中,既有可变参数,又有一般参数,可变参数一定要放在最后.
2.一个方法中不能同时定义两个可变参数.
5.Arrays工具类中的asList方法:
asList(数组对象): 把这个数组对象转换成一个集合对象.
如果是引用类型的数组, 转换成集合后,数组中的元素就是集合中的元素
如果是基本类型的数组,转换成集合后, 该数组就变成了集合中的一个元素.
为什么要把数组转换成集合?
可以用集合中的方法来操作数组.
数组通过asList方法转换成集合之后, 该集合不能进行增删的操作! 可以修改集合中的元素!
集合转数组:
Collection中的toArray方法:
toArray(数组对象): 返回的是一个对应的数组对象.
注意:
如果传入的数组长度小于等于集合的长度, 返回的数组长度等于集合的长度.
如果传入的数组长度大于集合的长度,返回的数组的长度就是指定的长度!
|
|