(3)Vector(了解)
Vector的特有功能:
a:添加public void addElement(E obj)--add()b:获取public Object elementAt(int index)--get()public Enumeration elements()-- iterator()
boolean hasMoreElements()-- hasNext()Object nextElement()-- next()
(4)LinkedListA:有特有功能 A:添加功能public void addFirst(Object e)public void addLast(Object e)B:获取功能public Object getFirst()public Obejct getLast()C:删除功能public Object removeFirst()public Object removeLast()
2:泛型
(1)泛型概述是一种把明确类型的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型。(2)格式:<数据类型>注意:该数据类型只能是引用类型。(3)好处:A:把运行时期的问题提前到了编译期间B:避免了强制类型转换C:优化了程序设计,解决了黄色警告线问题,让程序更安全(4)泛型的前世今生A:泛型的由来Object类型作为任意类型的时候,在向下转型的时候,会隐含一个转型问题(强转)B:泛型类
把泛型定义在类上格式:publicclass 类名<泛型类型1,…>注意:泛型类型必须是引用类型C:泛型方法
格式:public<泛型类型> 返回类型方法名(泛型类型 .)D:泛型接口
格式:public interface 接口名<泛型类型1…>E:泛型高级通配符
?:任意类型,如果没有明确,那么就是Object以及任意的java类了
? extends E:向下限定,E及其子类
? super E:向上限定,E极其父类
(5)我们在哪里使用呢?一般是在集合中使用。3:增强for循环(1)JDK5的新特性:自动拆装箱,泛型,增强for,静态导入,可变参数,枚举(2)格式:for(元素的数据类型 变量名 : 数组或者Collection集合的对象) {使用该变量即可,该变量其实就是数组或者集合中的元素。}
ArrayList存储字符串并遍历。要求加入泛型,并用增强for遍历。
A:迭代器
B:普通for
C:增强for
// 创建集合对象
ArrayList<String> array = new ArrayList<String>();
// 创建并添加元素
array.add("hello");
array.add("world");
array.add("java");
// 遍历集合
// 迭代器
Iterator<String> it = array.iterator();
while (it.hasNext()) {
String s = it.next();
System.out.PRintln(s);
}
System.out.println("------------------");
// 普通for
for (int x = 0; x < array.size(); x++) {
String s = array.get(x);
System.out.println(s);
}
System.out.println("------------------");
// 增强for
for (String s : array) {
System.out.println(s);
}
(3)好处:简化了数组和集合的遍历(4)弊端增强for循环的目标不能为null。建议在使用前,先判断是否为null。
4:静态导入(1)可以导入到方法级别的导入(2)格式:import static 包名....类名.方法名;(3)注意事项:A:方法必须是静态的B:如果多个类下有同名的方法,就不好区分了,还得加上前缀,所以一般我们并不使用静态导入。
5:可变参数(1)如果我们在写方法的时候,参数个数不明确,就应该定义可变参数。(2)格式:修饰符 返回值类型 方法名(数据类型... 变量) {}注意:A:该变量其实是一个数组名B:如果一个方法有多个参数,并且有可变参数,可变参数必须在最后(3)Arrays工具类的一个方法
public static <T> List<T> asList(T... a):把数组转成集合
注意事项:虽然可以把数组转成集合,但是集合的长度不能改变。(可以修改不能增删)
新闻热点
疑难解答