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); } }