集合在Java里面的作用非凡,我们常用的有Set,List和Map三种,我们先熟悉一下Set ,特别是HashSet的使用
package collection.lession2;import java.util.HashSet;import java.util.Set;/*** 老紫竹JAVA提高教程(2)-认识Set集合之HashSet。* Set用来保存不允许重复的数据。可以是任何对象类型。* JDK5以后,主类型可以通过autobox 放入Set里面。* * @* */public class Lession2 { public static void main(String[] args) { // 普通测试 testNormal(); // 测试HashSet的特殊性 testForHashSet(); testForHashSet2(); } /** * 测试保存混合类型的数据. */ public static void testNormal() { System.out.println("----- testNormal -----------"); // Set有多个实现,我们先看看最常用的HashSet Set set = new HashSet(); // 添加一个字符串 set.add("字符串"); // 添加一个整数对象 set.add(new Integer(1)); // 利用JDK5的特性,增加一个浮点数 set.add(123.45); // 我们看看集合里对象的数量 System.out.println(set.size()); // 我们尝试增加一个重复的字符串 set.add("字符串"); // 我们再次看看集合里对象的数量 System.out.println(set.size()); // 我们来测试看看是否集合里包含了某个数据 System.out.println(set.contains(123.45)); // 我们从里面把这个浮点数删除 set.remove(123.45); // 我们再次看看集合里对象的数量 System.out.println(set.size()); } /** * 专门针对HashSet的测试。 */ public static void testForHashSet() { System.out.println("----- testForHashSet -----------"); HashSet set = new HashSet(); // 增加一个null对象 set.add(null); // 我们再次看看集合里对象的数量 System.out.println(set.size()); // 再次增加一个null看看 set.add(null); // 我们再次看看集合里对象的数量 System.out.println(set.size()); MyObject bj = new MyObject("java2000", 2); set.add(obj); bj = new MyObject("csdn", 10); set.add(obj); // 我们再次看看集合里对象的数量 System.out.println(set.size()); // 判断是否包含某个对象 System.out.println(set.contains(obj)); bj = new MyObject("xxxxxx", 2); set.add(obj); // 我们再次看看集合里对象的数量 System.out.println(set.size()); // 我们尝试把obj再次放入set看看 // 并没有增加,因为是重复的 set.add(obj); System.out.println(set.size()); // 我们构造一个新的对象,内容和前面的相同 bj = new MyObject("xxxxxx", 2); set.add(obj); System.out.println(set.size()); // 我们修改一下obj里面的年龄,再看看 obj.setAge(3); // 我们再测试看看是否包含此对象。 // 请注意,我们这个obj和前面的obj是同一个对象 // 我们仅仅修改了一下我们的年龄 System.out.println(set.contains(obj)); // 我们尝试把obj再次放入set看看 // 我们又增加了长度 set.add(obj); System.out.println(set.size()); } /** * 专门针对HashSet的测试2。 */ public static void testForHashSet2() { System.out.println("----- testForHashSet2 -----------"); HashSet set = new HashSet(); MyObject2 bj = null; for (int i = 0; i < 3; i++) { bj = new MyObject2("java2000" + i, i); set.add(obj); System.out.println(set.size()); } }}class MyObject { private int age; private String name; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } MyObject(String name, i 造物之前,必先造人。