package study; import java.util.HashSet; import java.util.Iterator; /** * Created by dell on 2017/1/23. */ public class Set { public static void main(String[] args){ method_add(); method_addAll(); } public static void method_add(){ java.util.Set<String> set = new HashSet<String>(); set.add("1"); set.add("2"); set.add("3"); set.add("3"); set.add("你好"); set.add(null); System.out.println("添加重复数据和NULL值之后的set为"+set);//打印结果:[null, 3, 2, 1, 你好]。 /** * 从打印结果来看,HashSet 是无序的,不重复的,允许存null */ } public static void method_addAll(){ Boolean a = false; java.util.Set<String> set1 = new HashSet<String>(); set1.add("1"); set1.add("2"); java.util.Set<String > set2 = new HashSet<String>(); set2.add("3"); set2.add("4"); set1.addAll(set2); System.out.println("添加集合【set2】之后的set1为"+set1);//打印结果:[3, 2, 1, 4] 。 /** * 从打印结果再一次证明HashSet的无序性,且addAll方法可以添加集合。addAll的argument为Collection<? extends String> c */ set1.remove("4"); System.out.println("删除【4】之后的结果"+set1);//打印结果:[3, 2, 1] set1.removeAll(set2); System.out.println("删除【set2】之后的结果"+set1);//打印结果:[2, 1] /** *HashSet调用删除remove方法,是直接拿掉删除的值,顺序不变。 */ /** * 判断是否包含此值 */ if (set1.contains("3")){ a = true; System.out.println("调用包含方法【contains】是否包含元素3----"+a); }else { System.out.println("调用包含方法【contains】是否包含元素3----"+a); } /** * 判断是否包含此集合 */ System.out.println("集合【set1】的元素为"+set1); System.out.println("集合【set2】的元素为"+set2); if (!set1.containsAll(set2)){ System.out.println("集合【set1】不包含集合【set2】"); }else { System.out.println("集合【set1】包含集合【set2】"); } for (String s : set1){ System.out.println("for循环遍历set1----"+s); } Iterator<String> ite = set1.iterator(); while (ite.hasNext()){ System.out.println("Iterator循环遍历元素的哈希码===="+ite.next().hashCode()); } System.out.println("set1的元素个数---"+set1.size()); boolean c = set1.retainAll(set2); System.out.println(c); System.out.println(set1); /** * 之前没有用过这个方法,今天试了下,发现是剔除set1中不set2没有的值。 * 1.如果set1.equal(set2),则返回false,说明set1调用retainAll()方法并未更改。 * 2.如果set1集合中的元素和set2中的不同,则返回true,说明set1调用retainAll()方法更改了。 * 所以依我个人的理解retainAll()方法是保留调用左右的交集元素 */ System.out.println("转换成数组集合==="+set2.toArray()); String[] strArr = set2.toArray(new String[set2.size()]); System.out.println("转化成数组的长度===="+strArr.length); for(String tempStr : strArr) { System.out.println("转换成数组集合元素====="+tempStr); } } }
笨鸟先飞——Java基础Set集合学习
最新推荐文章于 2022-10-24 16:47:03 发布