🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿
- 欢迎大家:这里是我的学习笔记、总结知识的地方,喜欢的话请三连,有问题可以私信🌳🌳🌳
您的点赞👍、关注➕、收藏⭐️、评论📝、私信📧是我最大的支持与鼓舞!!!🌻🌻🌻
集合——Map、Collections类
- Map接口及实现类
- Map接口操作
- Map接口的实现类
- 实战演练
- Collections类
- Collections类 — 排序
- 实战演练
- Collections类 — 查找
- 实战演练
- Collections类 — 打乱元素次序
- 实战演练
- Collections类 — 求极值
- 实战演练
- Collections类 — 其他常用方法
Map接口及实现类
- 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 + " ");
}
}
- 在Map对象的键上迭代
for(String key: map.keyset())
system.out.println(key);
- 在Map对象的值上迭代
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); //-3
if(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)
功能:在指定的列表中的指定位置上交换元素。
博主用心写,读者点关注,互动传真情,知识不迷路。