集合映射
Import Java.util.*;
一.映射Map
Map把关键字Key映射到值Value, 即所谓的Key/Value对。
1. HashMap
HashMap是基于Hash table 的接口,但是它不能保证集合中元素的顺序。当使用HashMap的一些基本操作(put()或get())时,所消耗的时间是很稳定的。
影响hashmap性能的因素:
I. 初始容量的大小
II. 加载参量
Eg:
public
static
void
main(String[] args) {
//
TODO
Auto-generated method stub
Map map=
new
HashMap();
//
初识容量为
16
map.put(
"stu1"
,
"tom"
);
map.put(
"stu2"
,
"tomclus"
);
map.put(
"stu3"
,
"spark"
);
System.
out
.println(map.get(
"stu1"
));
//
通过
value
集合输出
objects
Collection collection=map.values();
Iterator iterator=collection.iterator();
while
(iterator.hasNext())
{
System.
out
.println(iterator.next());
}
}
2.LinkedHashMap
LinkedHashMap
是
HashMap
的子类,它具有已知的迭代顺序(在使用
iterator
)时。
他维护了一个双向链表,这个链表的顺序决定了迭代的输出顺序。
需要注意的是:当一个重复元素被插入时,并不会影响原来的连标的顺序,实际上重复的
key
也不会被插入。
Eg.
Map map = new LinkedHashMap();
同上
3.TreeMap
T
reeMap
类实现了
Map
接口。
TreeMap
提供了按排序顺序存储
“
关键字
/
值
”
对的有效手段。应该注意的是,不像散列映射(
HashMap
),树映射(
TreeMap
)保证它的元素按照关键字升序排列。下面是
TreeMap
构造函数:
TreeMap<K,V>()
TreeMap<K,V>(comparator<K> comp)
这里TreeMap是j2se中唯一实现SortedMap接口的类,他使用红黑书结构来对加入的对象进行排序,默认的排序方式是采用Key值升序字典排序。
Eg:
public
static
void
main(String[] args) {
//
TODO
Auto-generated method stub
Map map=
new
TreeMap();
//
初识容量为
16
map.put(
"a"
,
"tom"
);
map.put(
"bb"
,
"tomclus"
);
map.put(
"ba"
,
"spark"
);
System.
out
.println(map.get(
"stu1"
));
//
通过
value
集合输出
objects
Collection collection=map.values();
Iterator iterator=collection.iterator();
while
(iterator.hasNext())
{
System.
out
.println(iterator.next());
}
}
二.映射Set
Set接口继承自Collection接口,Set容器中的对象都是唯一的,加入Set容器中的对象都必须重新定义!
1. HashSet
HashSet类实现了Set接口,但不能保证按照对象加入的顺序在其和中排序,也不能按照hashcode排序
EG:
public
static
void
main(String[] args) {
//
TODO
Auto-generated method stub
Set set =
new
HashSet();
set.add(
"a"
);
set.add(
"b"
);
set.add(
"c"
);
set.add(
null
);
set.add(
"d"
);
//
遍历这个集合类
set
Iterator iterator = set.iterator();
while
(iterator.hasNext())
{
String temp = (String)iterator.next();
if
(temp!=
null
)
System.
out
.print(temp+temp.hashCode()+
" "
);
else
System.
out
.print(
"null "
);
}
}
2.
同时有
LinkedHashSet and TreeSet
三
.
映射
List
List
接口是
Collection
接口的子接口,它是一个有序的集合,类适于列队。
有
ArrayList and LinkedList
1.
ArrayList
ArrayList
时使用一维数组实现
List
接口,所以对快速的随机数局的想象来说是用
ArrayList
可以得到较好的效能。
EG:
public
static
void
main(String[] args) {
//
TODO
Auto-generated method stub
List<String> list = new ArrayList<String>(); //
范型
list.add(
"a"
);
list.add(
"b"
);
list.add(
"c"
);
list.add(
"d"
);
System.out.println(“
显示
list
中的内容
”);
For(int i=0;i<list.size();i++)
{
System.out.pritnln(list.get(i));
}
}