一、Map的使用
以键值对形式进行储存数据
key不能重复
Map接口常用方法
方法名 | 说明 |
---|---|
Object put(Object key, Object val) | 以“键-值”对的方式进行存储 |
Object get(Object key) | 根据键返回相关联的值,如果不存在指定的键,返回null |
Object remove(Object key) | 删除由指定的键映射的“键-值对” |
int size() | 返回元素个数 |
Set keySet() | 返回键的集合 |
Collection values() | 返回值的集合 |
boolean containsKey(Object key) | 如果存在由指定的键映射的“键-值对”,返回true |
Map map = new HashMap(); //赋值 map.put("CN","中国"); map.put("US","漂亮"); map.put("RU","毛子"); map.put("RU","俄罗斯"); //根据key获得value Object obj = map.get("RU"); System.out.println(obj); //获得map大小 System.out.println(map.size()); //根据key删除元素 map.remove("US"); System.out.println(map.size()); //根据key将值改为null map.put("RU",null); //获得所有的key Set keys = map.keySet(); for (Object k : keys){ System.out.println(k); } System.out.println("--------"); //获得所有的值 Collection values = map.values(); System.out.println(Arrays.toString(values.toArray())); //查询指定key是否存在 boolean bool = map.containsKey("CC"); System.out.println(bool); System.out.println(map.getOrDefault("CN","没找到"));
遍历方式
Map map = new HashMap(); //赋值 map.put("CN","中国"); map.put("US","漂亮"); map.put("RU","毛子"); //键值对 System.out.println(map.get("CN")); //增强循环 for (Object key : map.keySet()){ System.out.println(key+"====="+map.get(key)); } System.out.println("--------"); //迭代器 Set keys = map.keySet(); Iterator it = keys.iterator(); while(it.hasNext()){ Object k = it.next(); System.out.println(k+"======"+map.get(k)); }
二、泛型集合的使用
泛型:以数据类型作为参数传递
传递数据类型必须是引用数据类型:
int == Integer char == Character //定义泛型list List<Integer>list = new ArrayList<Integer>(); //定义泛型set Set<Integer>set = new HashSet<Long>(); //定义泛型map Map<String,Integer>map = new HashMap<String,Integer>();
泛型方法
public<k> String get(K a){ return ""; }
<? extends T>:必须是T类或是子类,限制add功能,但是可以赋值给list
<? super T>:必须是T的父类或是当前类,限制get功能,get调用返回Object
Collection算法类
List<Integer> list = new ArrayList<Integer>(); list.add(99); list.add(11); list.add(66); list.add(44); list.add(55); //获得最大值 int max = Collections.max(list); //获得最小值 int min = Collections.min(list); System.out.println("最大值:"+max); System.out.println("最小值:"+min); System.out.println(Arrays.toString(list.toArray())); //升序排列 Collections.sort(list); System.out.println(Arrays.toString(list.toArray())); //查询指定内容是否存在 返回下标 小于0不存在 int i = Collections.binarySearch(list,44); System.out.println(i); //降序排列 Collections.reverse(list); System.out.println(Arrays.toString(list.toArray()));
对象排序
让当前对象实现接口Comparablie
重写方法compareTo(Object obj)
public class Text04 implements Comparable<Text04>{ public String name; public int age; public Text04(String name, int age) { this.name = name; this.age = age; } @Override public int compareTo(Text04 s) { if (this.age==s.age){ return 0;//不交换 } else if (this.age>s.age) { return 1;//交换位置 }else { return -1;//不交换 } } }