J-17 集合对象
2015-12-28 15:35
106 查看
List接口
ArrayList类
Vector类
LinkedList类
泛型
JDK5新特性
ArrayList类
ArrayList类概述
底层数据结构是数组,查询快,增删慢线程不安全,效率高
ArrayList案例
存储字符串并遍历存储自定义对象并遍历
Vector类
Vector类概述
底层数据结构是数组,查询快,增删慢线程安全,效率低
Vector类特有功能
public void addElement(Object obj) -- add()
public Object elementAt(int index) -- get()
public Enumeration elements() -- Iterator iterator()
boolean hasMoreElements() -- hasNext()Object nextElement() -- next()
注:Vector类是jdk1.0之后就有的,出现较早,后面对应的函数功能相似,是简化名称后的函数名,所以优先使用后面的函数。
Vector案例
存储字符串并遍历存储自定义对象并遍历
LinkedList类
LinkedList类概述
底层数据结构是链表,查询慢,增删快线程不安全,效率高
LinkedList类特有功能
添加功能
public void addFirst(Object e)public void addLast(Object e)
获取功能
public Object getFirst()public Object getLast()
删除功能
public Object removeFirst()public Object removeLast()
LinkedList案例
存储字符串并遍历存储自定义对象并遍历
泛型
泛型的概述
泛型是一种特殊的类型,它把指定类型的工作推迟到代码声明并实例化类或方法的时候进行。也被称为参数化类型,可以把类型当作参数一样传递过来,在传递过来之前我不明确,但是在使用的时候我就用明确了。
格式
public class 类名<泛型类型1,…>
注意:泛型类型必须是引用类型
好处
① 优化了程序设计,提高了程序的安全性② 将运行期遇到的问题转移到了编译期
③ 省去了类型强转的麻烦
使用情况
看API,如果类、接口、抽象类后面跟的是< E >,就说明要使用泛型。泛型一般在集合中使用。
泛型的使用
泛型类把泛型定义在类上
格式:public class 类名<泛型类型1,…>
注意:泛型类型必须是引用类型
泛型方法
把泛型定义在方法上
格式:public <泛型类型> 返回类型 方法名(泛型类型 .)
泛型接口
把泛型定义在接口上
格式:public interface 接口名<泛型类型1…>
通配符
?:任意类型,如果没有明确,那么就是Object以及任意的Java类了? extend E:向下限定,E及其子类
? super E:向上限定,E及其父类
JDK5新特性 -- 增强for
总结
自动拆装箱,泛型,增强for,静态导入,可变参数,枚举。增强for
概述
简化数组和Collection集合的遍历格式
for(元素数据类型 变量 : 数组或者Collection集合) { 使用变量即可,该变量就是元素 }
分析
好处:简化遍历,可替代迭代器注意事项:增强for的目标要判断是否为null
集合遍历(三种)
// 遍历集合// 迭代器
Iterator 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); }
静态导入
格式
格式:import static 包名….类名.方法名;直接导入到方法级别
注意事项
① 方法必须是静态的② 如果有多个同名的静态方法,容易不知道使用谁。这个时候要使用,必须加前缀。由此可见,意义不大,所以一般不用,但是要能看懂。
可变参数
概述
定义方法的时候不知道该定义多少个参数格式
修饰符 返回值类型 方法名(数据类型... 变量名){}public int sum(int... a){ }
注意事项
这里的变量a其实是一个数组如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个
Arrays工具类中的一个方法
public static List asList(T... a)T可以为任意引用类型。
相关文章推荐
- 一个简单的C++程序及说明
- redis 的性能及高版本配置
- linux ha 集群部署
- ssh免密码登陆和可能遇到的问题
- 单例的DoubleCheck
- Codeforces Round #337 (Div. 2) C Harmony Analysis
- 10 个迅速提升你 Git 水平的提示
- bash的按TAB键自动补全(自动完成)的原理与扩展
- 《How_Tomcat_Worsk》第二章笔记 一个简单的servlet容器
- Leetcode: Walls and Gates
- ios 判断相册 相机 位置权限
- [BZOJ1009]GT考试
- Jquery_artDialog对话框弹出
- Ubuntu安装jdk
- 根据lable内容设置lable的尺寸
- tr 进行大小写转换
- linux iio子系统
- matlab -- simple note
- iOS开发-CoreData的简单使用
- Problem B: 打鱼还是晒网