1.Set,List
首先,Set和List都是Collection的子接口.而这当中又有许多的实现类,如:HashSet,ArrayList等等;
Collection是把一些数据存储在存储器中以后,通过特定的方式来访问这些数据.
1).
HashSet<String> sets = new HashSet<String>();
sets.add(new Integer(5));
sets.add(new Integer(1));
sets.add(new Integer(100));
sets.add(new Integer(5));
//遍历
for(int num : sets){
System.out.print(num + " ");
}
// 遍历输出的结果:1 100 5
可以看出:Set存放在里面的元素没有顺序(无序),当中的元素也能不重复....与数学上定义的集合有许多的相似之处.
同时而对于两组一样的元素,其在存储器中存储的顺序是一样的.
2). List是队列的意思,即当中的顺序是一定的,以该方式存储的数据是有序的,即先进入的数据存放在前面,后进入的数据存放在后面,也允许元素重复出现,以线性的方式存储.
ArrayList<String> list = new ArrayList<String>();
list.add("元素" + 12);
for (int i = 10; i > 0; i--) {
String s = "元素" + i;
list.add(s);
}
list.add("元素" + 11);
// 遍历
for (String str : list) {
System.out.print(str + "\t");
}
// 遍历输出为:元素12 元素10 元素9 元素8 元素7 元素6 元素5 元素4 元素3 元素2 元素1 元素11
因为其是线性结构存储的,故还能通过下标对其进行访问.
for (int i = 0; i < list.size(); i++) {
// 根据下标取出一个元素
String str = list.get(i);
System.out.print(str + "\t");
}
2.Map
Map是以键-值对的方式来存储数据,即建立起一种一一对应的关系,使一个关键值对应一个指定的数据,即一个key值对应一个value值.其中所有的key组成的是一个Set集,即key值是不可重复的,也是无序的.如果加入key相同的键-值对,则会替换已经存在的键-值对.
HashMap<Integer, String> maps = new HashMap<Integer, String>();
maps.put(1, "元素1");
maps.put(2, "元素2");
maps.put(3, "元素3");
maps.put(100, "元素4");
Set<Integer> set = maps.keySet();
Iterator<Integer> iter = set.iterator();
// 遍历
while (iter.hasNext()) {
int num = iter.next();
String ele = maps.get(num);
System.out.print(num + " " + ele + "\t");
}
// 此处遍历得到的序列为:1 元素1 100 元素4 2 元素2 3 元素3
maps.put(1, "元素5");
maps.put(3, "元素6");
Iterator<Integer> iter2 = set.iterator();
// 遍历
while (iter2.hasNext()) {
int num = iter2.next();
String ele = maps.get(num);
System.out.print(num + " " + ele + "\t");
}
// 此处遍历得到的序列为:1 元素5 100 元素4 2 元素2 3 元素6