集合的简记
------- android培训、java培训、期待与您交流! ----------
集合
1. 集合用于存储对象的容器
2. 集合长度是可变的
3. 集合中不可以存储基本数据类型
集合容器因为内部结构的不同,用多种具体容器
Collection是Collection层次结构中的根接口
Collection常用方法:
add(Object obj) remove(Object obj) clear() contains(Object obj) size() iterator()等等。
遍历集合的几种方法
例:
public static void main(String[] args) {
List list = new ArrayList();
list.add(3);
list.add(5);
list.add(6);
list.add(9);
/*
方法一 利用迭代器和while循环去遍历集合
*/
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
int i = (Integer)iterator.next();
System.out.println(i);
}
/*
方法二 利用for循环迭代集合
*/
for (Iterator iter = list.iterator(); iter.hasNext();) {
int i = (Integer)iter.next();
System.out.println(i);
}
/*
方法三 利用foreach循环遍历集合
*/
for (Object obj : list) {
System.out.println(obj);
}
/*
方法四 利用普通for循环和get()方法去遍历集合
*/
for (int i = 0; i < list.size(); i++) {
int k = Integer.parseInt(list.get(i).toString());
System.out.println(k);
}
}
Collection子接口 List和Ste特点:
1, List 有序存入和取出,元素可以重复,
2,Set无序元素不能重复
List常用子类特点:
1. Vector 内部是数组数据结构,同步的
2. ArrayList 内部是数组数据结构,不同步的,查询元素的速度快
3. LinkedList 内部是链表数据结构,不同步的,增删元素的速度快
Set常用子类和特点
1. HashSet 内部数据结构是哈希表,不同步的
集合存取自定义对象,自定义的对象应该重写hashCode()和equals(Object
obj
)方法
2. TreeSte 内部数据结构是二叉树,可以对集合元素进行排序,不同步的
对对象进行排序,得先让对象具有可比性,实现Comparable接口重写compareTo
方法,或者自定义一个比较器
判断元素的唯一方法是根据比较方法的返回结果进行比较,为0相同认为就是同一元素。
Map集合
又称双列集合,以键值对方式存储
Map集合常用子类
Hashtable :内部数据结构是哈希表,是同步的,不允许null作为键和值
HashMap :内部数据结构是哈希表,不是同步的,允许null作为键和值
TreeMap :内部数据结构是二叉树,不是同步的,可以对Map集合中的键进行排序。
对Map集合的遍历:
Map<String,String> map=new HashMap<String,String>();
map.put("一","haha1");
map.put("二","haha2");
map.put("三","haha3");
map.put("四","haha4");
//用keySet
Set<String> set=map.keySet();
for(Iterator<String> i=set.iterator();i.hasNext();)
{
String str=i.next();
System.out.println(str+"::"+map.get(str));
}
//用entrySet
Set<Map.Entry<String, String>> set1=map.entrySet();
for(Iterator<Map.Entry<String, String>> i=set1.iterator();i.hasNext();)
{
Map.Entry<String, String> me=i.next();
System.out.println(me.getKey()+"::"+me.getValue());
}