HashSet实现原理依赖于hashMap的实现,因为我们都知道一个set集合中的元素是无序,不可重复的.这正好和map中键值的特性相同,所以其实现其就是将元素存在map的键值中,value值是相同的.下面是代码实现:
import java.util.HashMap; //自己实现hashSet public class hashSet { HashMap map ; private static final Object PRESENT = new Object(); int size ; public hashSet() { map = new HashMap(); } public int size() { return size ; } public void add(Object o) { map.put(o, PRESENT);//利用map键对象的不可重复 } public static void main(String[]args) { hashSet s = new hashSet(); s.add("nnnnn"); s.add("pppp"); } }
迭代器的使用:
import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; public class Iterat { public static void main(String[] args) { List list = new ArrayList(); list.add("aaa"); list.add("ddd"); for(int i= 0; i<list.size();i++) { System.out.println(list.get(i)); } Set set = new HashSet(); set.add("aaa"); set.add("sss"); set.add("ccc"); //通过迭代器遍历set // Iterator iter = set.iterator(); // while(iter.hasNext()) //remove 删除游标左边的元素 for(Iterator iter = set.iterator() ;iter.hasNext();) { //next 返回当前游标指向的对象,并将游标移向下一位 String str = (String)iter.next(); System.out.println(str); } } }
map关联容器的使用:
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; //使用map关联容器来封装数据 public class Test23 { public static void main(String[] args) { Map map = new HashMap(); map.put("id", 9); map.put("name","gao"); map.put("salary",3050); map.put("department","教学部门"); map.put("hireDate","2006-10"); List<Map>list = new ArrayList<Map>(); list.add(map); } public static void printEmpName(List<Map>list) { for(int i=0 ;i <list.size();i++) { Map map = list.get(i); System.out.println(map.get("name")); } } }