List: 有存儲順序, 可重複數組
Set: 無存儲順序, 不可重複安全
HashSet: 線程不安全,存取速度快。底層是以哈希表實現的。數據結構
TreeSet: 紅-黑樹的數據結構,默認對元素進行天然排序(String)。若是在比較的時候兩個對象返回值爲0,那麼元素重複。ide
比較器 的定義格式:this
class 類名 implements Comparator{ }線程
class Person{ int id; String name; public Person(int id, String name) { super(); this.id = id; this.name = name; } @Override public int hashCode() { return this.id; } @Override public boolean equals(Object obj) { Person p = (Person)obj; return this.id == p.id; } @Override public String toString() { return "編號:"+ this.id +" 姓名: "+ this.name; } } public class Demo1 { public static void main(String[] args) { HashSet<Person> set = new HashSet<Person>(); set.add(new Person(110,"狗娃")); set.add(new Person(110,"狗娃")); System.out.println("集合的元素:"+ set); } }
public static void main(String[] args) { // 遍歷數組: String[] arr = new String[] { "xx", "yy", "zz" }; // 1,加強的for循環 for (String elt : arr) { System.out.println(elt); } // 2,下標的方式 for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } }
public static void main(String[] args) { // 遍歷List: List<String> list = new ArrayList<String>(); list.add("aa"); list.add("bb"); list.add("cc"); // 1,加強的for循環 for (String elt : list) { System.out.println(elt); } // 2,下標 for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } // 3,迭代器 for (Iterator<String> iter = list.iterator(); iter.hasNext();) { String elt = iter.next(); System.out.println(elt); } }
public static void main(String[] args) { // 遍歷Set: Set<String> set = new HashSet<String>(); set.add("dd"); set.add("ee"); set.add("ff"); // 1,加強的for循環 for (String elt : set) { System.out.println(elt); } // 2,迭代器 for(Iterator<String> iter = set.iterator(); iter.hasNext() ; ){ String elt = iter.next(); System.out.println(elt); } }
public static void main(String[] args) { // 遍歷Map: Map<String, String> map = new HashMap<String, String>(); map.put("aa", "xx"); map.put("bb", "yy"); map.put("cc", "zz"); // 1,加強的for循環(Entry集合) for (Entry<String, String> entry : map.entrySet()) { System.out.println(entry); } // 2,加強的for循環(Key集合) for(String key : map.keySet()){ System.out.println(key + " = " + map.get(key)); } // 3,遍歷值的集合 for(String value : map.values()){ System.out.println(value); } }