Java复习 之容器
小生快要准备找工作了 现在开始复习一下Java基础之容器
Set和List是一个个往里面存 Map是两个两个往里面装
所谓重复指的是他们互相equals
Collection 接口定义了存取一组对象的方法,其子接口Set和List分别定义了存储方式
Set中的数据对象没有顺序并且不可以重复
List中的数据对象有顺序并且可以重复
Map接口定义了健值映射对的存储方法
1.Collection中的方法
例1.
package com.hw.Prepare; import java.util.*; public class test3 { public static void main(String[] args){ Collection a = new ArrayList(); a.add(new Integer(1)); a.add(new String("加油")); a.add(new String("1331")); System.out.println(a.size()); System.out.println(a); } }
运行结果
容器类对象在调用remove,contains等方法时会先比较对象是否相等,这将会涉及到对象类型的equals和hashcode方法,对于自定义的类型,需要重写equals和hashcode方法以实现自定义对象的对象相等规则
例如 增加Name类相等的equals和hashcode的方法如下
hashcode经常作为索引,能方便地找到对象的位置 效率比较高
Iterator:
例子1:
例子二:
增强的for循环
Set接口是collection的子接口,Set接口是collecion的子接口,set接口没有提供额外的方法,但是实现set接口的容器类中的元素是没有顺序的,而且不可以重复。
set容器可以跟数学中的集合相对应
Hashset、TreeSet
retainall
求交集
ArrayList 数组 LinkList 链表
例子
java.util.collections
如何选择数据结构
衡量标准:读的效率和改的效率
Array读快改慢
Linked改快读慢
Hasn两者之间
Map
不能重复指的是equals 用hashcode比较效率比较高
例子
jdk1.5可以自动打包 自动包装为对象 或自动把对象转为基础类型
例子
例子
改成自动打包 解包
泛型:
例子2
例子
总结