Set系列集合:
元素是唯一的。
HashSet:
哈希值:
如果没有重写hashcode方法和equals方法,那么哈希值是根据地址值计算的。
LinkedHashSet:
TreeSet底层为红黑树。
红黑树:两个红色节点不能相连。
双列集合:
Map的遍历方式:
1.键找值:
示例:
import java.util.*;
public class test {public static void main(String[] args) {Map<String,String>map=new HashMap<>();//第一个string是键的类型,第二个string是值的类型map.put("1","1");map.put("2","2");map.put("3","3");Set<String>keys=map.keySet();for(String key:keys){//key是键,value是值String value=map.get(key);System.out.println(key+"="+value);}}
}
2.键值对:
entry:键值对对象
示例:
import java.util.*;
public class test {public static void main(String[] args) {Map<String,String>map=new HashMap<>();//第一个string是键的类型,第二个string是值的类型map.put("1","1");map.put("2","2");map.put("3","3");Set<Map.Entry<String,String>>entries=map.entrySet();for(Map.Entry<String,String>entry:entries){String key=entry.getKey();String value=entry.getValue();System.out.println(key+"="+value);}}
}
3.Lambda表达式:
示例:
import java.util.*;
import java.util.function.BiConsumer;
public class test {public static void main(String[] args) {Map<String,String>map=new HashMap<>();//第一个string是键的类型,第二个string是值的类型map.put("1","1");map.put("2","2");map.put("3","3");/* map.forEach(new BiConsumer<String,String>(){@Overridepublic void accept(String key,String value){System.out.println(key+"="+value);}});*///lambda表达式map.forEach((key,value)->System.out.println(key+"="+value));}
}
Hashmap:
Hashmap的特点:
LinkHashmap:
示例:
import java.util.*;
import java.util.function.BiConsumer;
public class test {public static void main(String[] args) {LinkedHashMap<String,Integer> lhm=new LinkedHashMap<>();lhm.put("java",100);//put方法有两个功能,一个添加,一个覆盖。lhm.put("python",90);lhm.put("c++",80);System.out.println(lhm);}
}
TreeMap:
C++queue常用函数:
1.push() 在队尾插入一个元素
2.pop() 删除队列第一个元素
3.size() 返回队列中元素个数
4.empty() 如果队列空则返回true
5.front() 返回队列中的第一个元素
6.back() 返回队列中最后一个元素