java.util.Collection [I]
+--java.util.List [I]
+--java.util.ArrayList [C]
+--java.util.LinkedList [C]
+--java.util.Queue[C]
+--java.util.Vector [C]
+--java.util.Stack [C]
+--java.util.Set [I]
+--java.util.HashSet [C]
+--java.util.SortedSet [I]
+--java.util.TreeSet [C]
java.util.Map [I]
+--java.util.SortedMap [I]
+--java.util.TreeMap [C]
+--java.util.Hashtable [C]
+--java.util.HashMap [C]
+--java.util.LinkedHashMap [C]
+--java.util.WeakHashMap [C]
Collection是最基本的集合接口,一个Collection代表一组Object的集合,这些Object被称作Collection的元素。
- Iterator it = collection.iterator(); // 获得一个迭代子
- while(it.hasNext()) {
- Object obj = it.next(); // 得到下一个元素
- }
**************************************************************************************
- List list = Collections.synchronizedList(new LinkedList(...));
q.offer("SHENJIE");
System.out.println(q);
q.peek();
q.poll();
System.out.println(q.size());
ArrayList类
Object obj = new Object();
ArrayList<Object> list = new ArrayList<Object>();
startTime = System.currentTimeMillis();
for(int i = 0; i < 1000000; i++){
list.add(obj);
}
endTime = System.currentTimeMillis();
System.out.println(endTime - startTime);
list.clear();
//已知容量的的较大数组时使用ArrayList对象,在初始化时尽量使用ensureCapacity()
startTime = System.currentTimeMillis();
list.ensureCapacity( 10000 ); //10000是已知要创建的数组的长度
for(int i = 0; i < 1000000; i++){
list.add(obj);
}
endTime = System.currentTimeMillis();
System.out.println(endTime - startTime);
Stack 类
Stack<String> s = new Stack<String>();
s.push("SHENJIE");
s.peek();
s.pop();
**************************************************************************************
* 获得Set内容
*/
Iterator<Customer> it = set.iterator();
while(it.hasNext()){
Customer customer = it.next();
System.out.print(customer.getName() + customer.getAge() + " ");
}
Set s = Collections.synchronizedSet(new HashSet(...));
sorter.add("Bob");
sorter.add("Amy");
sorter.add("Carl");
print(sorter);
print(sorter.first());
print(sorter.last());
print(sorter.toArray());
******************************************************************************************
*****************************************************************************************
// iterate through all entries
for (Map.Entry<String, Employee> entry : staff.entrySet())
{
String key = entry.getKey();
Employee value = entry.getValue();
System.out.println("key=" + key + ", value=" + value);
}
- Hashtable numbers = new Hashtable();
- numbers.put("one", new Integer(1));
- numbers.put("two", new Integer(2));
- numbers.put("three", new Integer(3));
- Integer n = (Integer)numbers.get("two");
- System.out.println("two =" + n);
* HashMap 优于 HashTable
* @author SHEN Jie
*
*/
public class MapTest {
public static void main(String[] args){
//非同步
Map<Integer, String> m = new HashMap<Integer, String>();
m.put(1, "SHENJIE");
m.put(2, "JESSE");
m.put(1, "WIEMING");
System.out.println(m); //{2=JESSE, 1=WIEMING}
System.out.println(m.get(3)); //null
//同步
Hashtable<Student, String> h = new Hashtable<Student, String>();
h.put(new Student("SHENJIE",24), "SHENJIE");
h.put(new Student("JESSE",13), "JESSE");
System.out.println(h); //{map.Student@369c6c42=JESSE, map.Student@82c929c0=SHENJIE}
System.out.println(h.get(3));
}
}
class Student{
public int age;
public String name;
Student(String name, int age){
this.name = name; this.age = age;
}
public int hashCode(){
return age*name.hashCode();
}
public boolean equals(Object o){
Student s = (Student)o;
return age==s.age && name.equals(s.name);
}
}
WeakHashMap类
List str = Arrays.asList(new String[]{"1","2","3"});
int len = str.size();
//二分查找数组
int pos = Arrays.binarySearch(new char[]{'a','d','c','e'}, 'c');
//比较两个数组
boolean cmp = Arrays.equals(new float[]{3,4,5}, new float[]{3,4,5});
//数组中填元素
Arrays.fill(new char[]{},'a');
//数组中填元素,fromindex, toindex
// Arrays.fill(new char[]{},3,4,'a');
//排序数组
Arrays.sort(new double[]{123,-234,234,34});
String s = Arrays.toString(new String[]{"hello", "thank you!"}); //[hello, thank you!]
List l = Collections.EMPTY_LIST;
Map m = Collections.EMPTY_MAP;
Set s = Collections.EMPTY_SET;
//同步各种集合
Collections.synchronizedSet(s);
//只有list可交换元素
Collections.swap(l, 2, 4);
Collections.sort(l);
List<Integer> numbers = new ArrayList<Integer>();
for (int i = 1; i <= 49; i++)
numbers.add(i);
Collections.shuffle(numbers);
System.out.println(numbers);
List<Integer> winningCombination = numbers.subList(0, 6);
Collections.sort(winningCombination);
System.out.println(winningCombination);
System.out.println(Collections.min(winningCombination));
System.out.println(Collections.max(winningCombination));
Collections.swap(winningCombination,5,2);
System.out.println(winningCombination);