1.3Map接口中的常用方法
put方法:将指定的键与值对应起来,并添加到集合中
方法返回值为键所对应的值
使用put方法时,若指定的键(key)在集合中没有,则没有这个键对应的值,返回null,并把指定的键值添加到集合中;
使用put方法时,若指定的键(key)在集合中存在,则返回值为集合中键对应的值(该值为替换前的值),并把指定键所对应的值,替换成指定的新值。
get方法:获取指定键(key)所对应的值(value)
remove方法:根据指定的键(key)删除元素,返回被删除元素的值(value)。
Map接口的方法演示
public class MapDemo {
public static void main(String[] args) {
//创建Map对象
Map<String, String> map = new HashMap<String,String>();
//给map中添加元素
map.put(“星期一”, “Monday”);
map.put(“星期日”, “Sunday”);
System.out.println(map); // {星期日=Sunday, 星期一=Monday}
//当给Map中添加元素,会返回key对应的原来的value值,若key没有对应的值,返回null
System.out.println(map.put("星期一", "Mon")); // Monday
System.out.println(map); // {星期日=Sunday, 星期一=Mon}
//根据指定的key获取对应的value
String en = map.get("星期日");
System.out.println(en); // Sunday
//根据key删除元素,会返回key对应的value值
String value = map.remove("星期日");
System.out.println(value); // Sunday
System.out.println(map); // {星期一=Mon}
1.4Map集合遍历键找值方式 (重点)
1.使用keyset 获取到所有的map的键,然后通过这个键去便可里这些值;( get(key) 返回的就会是一个值)
可以使用增强for 来遍历这个key
eg:
Map <String ,string> map = new HashMap<string,string>();
map.put(“邓超”, “孙俪”);
map.put(“李晨”, “范冰冰”);
map.put(“刘德华”, “柳岩”);
set keyset = map.keySet() ; // 这个就是调用KeySet() 获取到所有的 键;
iterator it = keyset.iterator();
while( it.hasnext()) {
String key =it.next ();
String value = map.get (key) ;
sout (key +“” + value) ;
map还提供 一个封装的相关的类:
1.5Entry键值对对象在Map类设计时,提供了一个嵌套接口:Entry。Entry将键值对的对应关系封装成了对象。即键值对对象,这样我们在遍历Map集合时,就可以从每一个键值对(Entry)对象中获取对应的键与对应的值。
使用这个接口中的方法就可以快速的获取相关的内容了;
getKey()方法:获取Entry对象中的键
getValue()方法:获取Entry对象中的值
entrySet()方法:用于返回Map集合中所有的键值对(Entry)对象,以Set集合形式返回。
步骤:
首先使用: entrySet() 方法 : 获取到map 中的所有键值对对象,以Set集合形式返回;
然后getKey ()
然后再getvalue () 就可以;
第二种遍历方法: 通过键值对
eg:
Map <String ,string> map = new HashMap<string,string>();
map.put(“邓超”, “孙俪”);
map.put(“李晨”, “范冰冰”);
map.put(“刘德华”, “柳岩”);
Set<map.entrySet<stirng,string>> entrySet= map.entrySet();
Iterator<Map.Entry<String,String>> it =entrySet.iterator();
while(it.hasNext()){
//得到每一对对应关系
Map.Entry<String,String> entry = it.next();
//通过每一对对应关系获取对应的key
String key = entry.getKey();
注意:当给HashMap中存放自定义对象时,如果自定义对象作为key存在,这时要保证对象唯一,必须复写对象的hashCode和equals方法(如果忘记,请回顾HashSet存放自定义对象)。
如果要保证map中存放的key和取出的顺序一致,可以使用LinkedHashMap集合来存放。
Collections 是一个关于集合的工具类: 提供了很多关于对集合进行操作的方法; 如排序之类的;
1.10Collections集合工具类
Collections是集合工具类,用来对集合进行操作。部分方法如下:
public static void sort(List list) // 集合元素排序
//排序前元素list集合元素 [33,11,77,55]
Collections.sort( list );
//排序后元素list集合元素 [11,33,55,77]
public static void shuffle(List<?> list) // 集合元素存储位置打乱
//list集合元素 [11,33,55,77]
Collections.shuffle( list );
//使用shuffle方法后,集合中的元素为[77,33,11,55],每次执行该方法,集合中存储的元素位置都会随机打乱
集合整体的情况:
Collections中的方法:
public static void sort(List list) 排序
public static void shuffle(List<?> list) 集合中的元素存储位置随机打乱