马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿
- 接待各人:这里是我的学习条记、总结知识的地方,喜好的话请三连,有题目可以私信🌳🌳🌳
您的点赞👍、关注➕、收藏⭐️、品评📝、私信📧是我最大的支持与鼓舞!!!🌻🌻🌻
Map接口及实现类
- Map是用来存储 “键/值”对 的对象。在Map中存储的关键字和值都必须是对象,并要求关键字是唯一的,而值可以重复。
Map接口操纵
- public V put(K key, V value) public V get(Object key) public V remove(Object key) public int size() public void clear() public Set<K> keySet() public Collection<V> values()
复制代码 Map接口的实现类
- Map接口的常用实现类有HashMap、TreeMap。
- HashMap类以散列方法存放“键/值”对。其构造方法:
- HashMap() HashMap(int initialCapacity) HashMap(Map m)
复制代码
- TreeMap类包管Map中的“键/值”对按关键字升序排序。其构造方法:
- TreeMap()TreeMap(Comparator c)TreeMap(Map m)
复制代码 实战演练
例1:HashMapDemo.java
- import java.util.*;public class HashMapDemo {public static void main(String[] args) { String[] country={"中国","印度","澳大利亚","德国","古巴", "希腊","日本"}; String[] capital={"Beijing","New Delhi","Canberra","Berlin", "Havana","Athens","Tokyo"}; Map<String, String> m = new HashMap<>(); for(int i = 0;i<country.length;i++) m.put(country[i], capital[i]); System.out.println("共有 " + m.size() + " 个国家:"); System.out.println(m); System.out.println(m.get("中国")); // Beijing m.remove("日本"); Set<String> coun = m.keySet(); for(Object c : coun) System.out.print(c + " "); }}
复制代码
例2:TreeMapDemo.java
- import java.util.*;public class TreeMapDemo {public static void main(String[] args) { String[] country={"中国","印度","澳大利亚","德国","古巴", "希腊","日本"}; String[] capital={"Beijing","New Delhi","Canberra","Berlin", "Havana","Athens","Tokyo"}; Map<String, String> m = new TreeMap<>(); for(int i = 0;i<country.length;i++) m.put(country[i], capital[i]); System.out.println("共有 " + m.size() + " 个国家:"); System.out.println(m); System.out.println(m.get("中国")); // Beijing m.remove("日本"); Set<String> coun = m.keySet(); for(Object c : coun) System.out.print(c + " "); }}
复制代码
- for(String key: map.keyset()) system.out.println(key);
复制代码
- for(Integer value: map.values()) system.out.println(value);
复制代码 Collections类
- java.util.Collections类是工具类,这个类提供了多少static方法实现聚集对象的操纵。这些操纵大多针对List操纵。告急包罗下面几个方面:
排序 sort()
查找 binarySearch()
重排 shuffle()
求极值以及其他操纵。 max(), min(), reverse()等。
Collections类 — 排序
- public static<T> void sort(List<T> list)
复制代码 功能:按照元素的天然序次举行排序
- public static<T> void sort(List<T> list, Comparator<? Super T> c)
复制代码 功能:根据指定的比力器举行排序
实战演练
例:ListSortDemo.java
- import java.util.Arrays;import java.util.Collections;import java.util.List;public class ListSortDemo {public static void main(String[] args) {List<String> names = Arrays.asList("peter","anna","mike","Lily");Collections.sort(names);System.out.println(names);Collections.sort(names, (a,b)->b.compareTo(a));System.out.println(names);}}
复制代码
Collections类 — 查找
- public static<T> int binarySearch(List<T> list, T key)
复制代码 功能:在按照天然序次排序后的List中查找key的位置
- public static<T> int binarySearch(List<T> list, T key, Comparator<? super T> c)
复制代码 功能:根据指定的比力器对List排序后,查找key的位置
实战演练
例:ListSearchDemo.java
- import java.util.*;public class ListSearchDemo{public static void main(String[] args) {List<Integer> list = Arrays.asList(5,3,1,7);Collections.sort(list); //先排序再查找Integer key = 4;int pos = Collections.binarySearch(list, key); //-3if(pos < 0) {List<Integer> nList = new ArrayList<>(list);nList.add(-pos-1,key);System.out.println(nList); } }}
复制代码
Collections类 — 打乱元素序次
- public static void shuffle(List<T> list)
复制代码 功能:使用默认的随机数打乱List中元素的序次
- public static void shuffle (List<T> list, Random rnd)
复制代码 功能:使用指定的Random对象打乱List中元素的序次
实战演练
例:ListShuffleDemo.java
- import java.util.*;public class ListShuffleDemo {public static void main(String[] args) {Integer[] num = {1,3,5,6,4,2,7,9,8,10};List<Integer> list = Arrays.asList(num);System.out.println(list);Collections.shuffle(list);System.out.println(list); //每次运行输出的效果差别 }}
复制代码
Collections类 — 求极值
- public static<T> T max(Collection<? extends T> coll)
复制代码 功能:返回给定聚集根据其元素天然排序后的最大元素
- public static<T> T max(Collection<? extends T> coll, Comparator<? super T> comp)
复制代码 功能:返回给定聚集根据指定的比力器排序后的最大元素
- public static<T> T min(Collection<? extends T> coll)
复制代码 功能:返回给定聚集根据其元素天然排序后的最小元素
- public static<T> T min(Collection<? extends T> coll, Comparator<? super T> comp)
复制代码 功能:返回给定聚集根据指定的比力器排序后的最大元素
实战演练
例:ListExtremeDemo.java
- import java.util.*;public class ListExtremeDemo {public static void main(String[] args) {List<String> list = Arrays.asList("dog","cat","tiger");System.out.println(Collections.max(list));System.out.println(Collections.max(list, (String a,String b)->b.compareTo(a)));System.out.println(Collections.min(list));System.out.println(Collections.min(list, (String a,String b)->b.compareTo(a))); }}
复制代码
Collections类 — 其他常用方法
- public static void reverse(List<?> list)
复制代码 功能:反转指定列表中元素的序次。
- public static <T> void fill(List<? super T> list, T obj)
复制代码 功能:用指定的值obj更换指定列表的全部元素。
- public static <T> void copy(List<? super T> dest, List<? extends T> src)
复制代码 功能:将src中的元素复制到dest列表中。要求:dest列表长度≥src列表长度。
- public static void swap(List<?> list, int i, int j)
复制代码 功能:在指定的列表中的指定位置上交换元素。
博主用心写,读者点关注,互动传真情,知识不迷路。
|