1.HashSet
import java.util.HashSet; //HashSet类 实现了set接口 无序但唯一 public class Demo01 { public static void main(String[] args) { boolean r; HashSet<String>s = new HashSet<String>(); r = s.add("Hello"); System.out.println(r); r = s.add("world"); System.out.println(r); r = s.add("Hello"); System.out.println(r); r = s.add("hello"); System.out.println(r); int a = s.size(); System.out.println(a); for (String s1 : s) { System.out.println(s1); }
Iterator it = s.iterator();
while (it.hasNext()){
System.out.println(it.next());
}
}
}
不能包含重复元素
import java.util.HashSet; import java.util.Iterator; //HashSet类 实现了set接口 无序但唯一 public class Demo01 { public static void main(String[] args) { long startTime = System.currentTimeMillis(); boolean r; HashSet<String>s = new HashSet<String>(); r = s.add("Hello"); System.out.println(r); r = s.add("world"); System.out.println(r); r = s.add("Hello"); System.out.println(r); r = s.add("hello"); System.out.println(r); int a = s.size(); System.out.println(a); for (String s1 : s) { System.out.println(s1); } Iterator it = s.iterator(); while (it.hasNext()){ System.out.println(it.next()); } long endTime = System.currentTimeMillis(); System.out.println("所需时间为:" + (endTime-startTime) + "ms"); } }
import java.util.Iterator; import java.util.TreeSet; //TreeSet public class Demo02 { public static void main(String[] args) { long startTime = System.currentTimeMillis(); boolean r; TreeSet<String> s = new TreeSet<String>(); r = s.add("Hello"); System.out.println(r); r = s.add("world"); System.out.println(r); r = s.add("Hello"); System.out.println(r); r = s.add("hello"); System.out.println(r); for (String s1 : s) { System.out.println(s1); } Iterator it = s.iterator(); while (it.hasNext()){ System.out.println(it.next()); } long endTime = System.currentTimeMillis(); System.out.println("所需时间为:" + (endTime-startTime) + "ms"); } }
第一个所用时间为1ms
第二个所用时间为2ms
所以TreeSet操作要比HashSet慢
TreeSet是SortedSet接口的实现类,它使用红黑树存储元素排序,基于元素的值对元素排序。
HashMap类
//HashMap类 输出的键—值对顺序和放入的顺序并不一定保持一致 key可以是null
import java.util.Map; //HashMap类 输出的键—值对顺序和放入的顺序并不一定保持一致 key可以是null public class HashMap { public static void main(String[] args) { Map<String,String> all = new java.util.HashMap<String, String>(); all.put("BJ","beijing"); all.put("zz","zhengzhou"); all.put(null,"null"); String value = all.get("BJ");//根据key查询出value System.out.println(value); System.out.println(all.get("zz")); System.out.println(all.get(null)); System.out.println(all); } }
TreeMap类
//TreeMap类 结果按键的字母顺序进行排序
import java.util.Map; //HashMap类 输出的键—值对顺序和放入的顺序并不一定保持一致 key可以是null public class HashMap { public static void main(String[] args) { Map<String,String> all = new java.util.HashMap<String, String>(); all.put("BJ","beijing"); all.put("zz","zhengzhou"); all.put(null,"null"); String value = all.get("BJ");//根据key查询出value System.out.println(value); System.out.println(all.get("zz")); System.out.println(all.get(null)); System.out.println(all); } }
keySet遍历
//使用keySet遍历Map集合中的元素
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; //使用keySet遍历Map集合中的元素 public class Demo05 { public static void main(String[] args) { Map<String,String> all = new HashMap<String, String>(); all.put("BJ","beijing"); all.put("zz","zhengzhou"); all.put(null,"null"); Set<String> set = all.keySet(); Iterator<String> iter = set.iterator(); while (iter.hasNext()){ String key = iter.next(); System.out.println(key + "-->" + all.get(key)); } } }
Map.Entry:
使用Map.Entary来获取Map中所有的元素。将Map集合通过entrySet()方法变成Set集合,里面的每一个元素都是Map.Entry的实例;利用Set接口中提供的iterator()方法将Iterator接口实例化;通过迭代,利用Map.Entry接口完成key与value的分离。
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; //使用Map.Entry来获取Map中所有的元素 public class Demo06 { public static void main(String[] args) { Map<String,String> all = new HashMap<String, String>(); all.put("BJ","beijing"); all.put("zz","zhengzhou"); all.put(null,"null"); Set<Map.Entry<String,String>> set = all.entrySet(); Iterator<Map.Entry<String,String>> iterator = set.iterator(); while (iterator.hasNext()){ Map.Entry<String,String> me = iterator.next(); System.out.println(me.getKey() + "-->" + me.getValue()); } } }
泛型
原形态:
list myIntList = new LinkedList();
myIntList.add(new Integer(0));
Integer x = (Integer) myIntList.iterator().next();
标识集合中应该存放的数据类型
eg:
list<Integer> myIntList = new LinkedList<Integer>();
myIntList.add(new Integer(0));
Integer x = myIntList.iterator().next();
List是一个带有一个类型参数的泛型接口
在创建对象时也需要指定类型参数
new LinkedList<Integer>();
原文:https://www.cnblogs.com/1764782550-rzs/p/15025911.html