list集合
**继承了Collection接口
特点:有序,可重复
常见实现类 ArrayList Vector LinkedList Stack
ArrayList
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable //实现了Serializable接口,所以它支持序列化,可以通过序列化传输 //实现了RandomAccess接口,支持快速随机访问,就是通过下标序号进行快速访问 //实现了Cloneable接口,支持被克隆
//transient关键字修饰的变量无法被序列化,前提是该类必须实现接口Serializable private transient Object[] elementData; private int size;//包含的元素的数量
构造方法
public ArrayList(int initialCapacity) { super(); if (initialCapacity < 0) throw new IllegalArgumentException("Illegal Capacity: "+ initialCapacity); //构造一个指定大小的数组 this.elementData = new Object[initialCapacity]; } //重载一个无参构造方法 public ArrayList() { this(10); //调用有参构造并设置默认容量为10 }
ArrayList的add方法
public boolean add(E e) { ensureCapacityInternal(size + 1);//数组大小 +1 elementData[size++] = e;//将新下标和参数对应 return true; } //重载的add方法 public void add(int index, E element) { rangeCheckForAdd(index); ensureCapacityInternal(size + 1); //拷贝了一个新数组赋值给自己 System.arraycopy(elementData,index,elementData,index + 1, size - index); elementData[index] = element; size++; } 拷贝方法 static void arraycopy(Object source, //原数组 int beginIndex,// 从原数组开始复制的下标 Object destination,// 新数组 int destStartIndex, // 新数组开始粘贴的下标 int length) //复制长度
set集合
**继承了Collection接口
特点:无序,元素不重复,重复添加会覆盖.同理,集合中最多有一个null
常见实现类 HashSet
Map集合
特点:以键值对方式存储,key不可重复 value可重复
常见实现类 HashMap
map集合的遍历
方法一:
public void get(Map<String, String> map) { Collection<String> c = map.values(); Iterator it = c.iterator(); for (; it.hasNext();) { System.out.println(it.next()); } }
方法二:
public void getByKeySet(Map<String, String> map) { Set<String> key = map.keySet(); for (Iterator it = key.iterator(); it.hasNext();) { String s = (String) it.next(); System.out.println(map.get(s)); } }
方法三:
public void getByEntry(Map<String, String> map) { Set<Map.Entry<String, String>> set = map.entrySet(); for(Iterator<Map.Entry<String, String>> it = set.iterator(); it.hasNext();){ Map.Entry<String, String> entry = (Map.Entry<String, String>) it.next(); System.out.println(entry.getKey() + " : " + entry.getValue()); } } }