做网站的保证承诺,微信上做网站怎么做,网站的建设多少钱,建设自己的网站怎么做Map接口是一种双列集合,它的每一个元素都包含一个键对象Key和值Value 键和值直接存在一种对应关系 称为映射 从Map集中中访问元素, 只要指定了Key 就是找到对应的Value
常用方法 HashMap实现类无重复键无序
它是Map 接口的一个实现类,用于存储键值映射关系,并且HashMap 集合没…Map接口是一种双列集合,它的每一个元素都包含一个键对象Key和值Value 键和值直接存在一种对应关系 称为映射 从Map集中中访问元素, 只要指定了Key 就是找到对应的Value
常用方法 HashMap实现类无重复键无序
它是Map 接口的一个实现类,用于存储键值映射关系,并且HashMap 集合没有重复的键且键值无序
import java.util.HashMap;public class h {public static void main(String[] args) {HashMap map new HashMap(); //创建Map对象map.put(1,张三); // put方法 存储键和值map.put(2,李四);map.put(3,王五);map.put(3,赵六); // 测试键是否具有唯一性 显示覆盖System.out.println(1:map.get(1)); // 根据键获取值System.out.println(2:map.get(2));System.out.println(3:map.get(3));}
}--------------------------------输出:1:张三
2:李四
3:赵六**注意: **第9行代码,键位为3重复了,但是还是输出了它
这是因为键位具有唯一性不能出现2个3但是如果存储了两个相同的值,后存储的值会覆盖原有的值 **键相同 值覆盖**
遍历Key键获取对应的值
通过遍历Map 集合中所有的键位,也就是对应的数字Key ,不遍历值Value ,再根据key 迭代到值
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;public class h {public static void main(String[] args) {HashMap map new HashMap(); //创建Map对象map.put(1,张三); // put方法 存储键和值map.put(2,李四);map.put(3,王五);Set keySet map.keySet(); //获取Key 123 键的方法 SetIterator it keySet.iterator(); // 遍历迭代键while (it.hasNext()) { // 判断是否下个元素 也就是自动Object key it.next(); // 依次拿到值Object value map.get(key); // 根据key值获取到对应的ValueSystem.out.println(key:value); // 依次输出}}
}首先调用Map对象的KeySet ()方法获得存储 Map 中所有键的Set 集合
然后通过 Iterator 选代Set 集合的每一个元素即每一个键
最后通过调get(Stringkey)方法根据键获取对应的值-------------------------------------------输出:1:张三
2:李四
3:王五
遍历集合映射关系
这是另一种遍历方式是先获取集合中的所有的映射关系,然后从映射关系中分别取出对应的键和值,然后分别输出即可
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;public class h {public static void main(String[] args) {HashMap map new HashMap(); //创建Map对象map.put(1,张三); // put方法 存储键和值map.put(2,李四);map.put(3,王五);Set entrySet map.entrySet(); // 获得映射集合Iterator it entrySet.iterator(); // 获得遍历迭代器while (it.hasNext()){// 获得集合中键值对应的映射关系Map.Entry entry (Map.Entry) (it.next());Object key entry.getKey(); // 获得Entry 的键 123Object value entry.getValue(); // 获得Enrty的值System.out.println(分别输出是key:value);}}
}-------------------------------------------输出:分别输出是1:张三
分别输出是2:李四
分别输出是3:王五**注意:**Map.entrySet()获取到了存储在map集合里面的所有映射的值, 这个集合存放了Map.Entry类型的
映射数据,(Entry是内部接口) 每个Map.Entry对象代表了一个键值在16行中. 然后通过遍历迭代
依次取出键和值输出 key value
区别:
上面两个迭代器的区别显而易见,一个是通过Key 值来拿到值,这是需要一个key 就可以获取到,后者集合映射关系则是需要两个都获取到key和value 缺一不可
Map操作集合常用方法 方法 描述 value() 获得Map实例中的所有Value 返回类型为Collection(单列集合) size() 得到Map 集合类的大小 containsKey() 判断是否包含传入的键 返回真或假 containsValue() 判断是否包含传入的值 返沪真或假 remove() 根据对应的Key 键删除对应的值
import java.util.*;public class h {public static void main(String[] args) {HashMap map new HashMap(); //创建Map对象map.put(1,张三); // put方法 存储键和值map.put(2,李四);map.put(3,王五);map.put(4,赵六);System.out.println(集合的大小是map.size());// 判断集合有没有键值 2 还要值王五System.out.println(判断是否包含传入的键map.containsKey(2));System.out.println(判断是否有传入的值map.containsValue(赵六));System.out.println(删除键为1的值map.remove(1)); //删除键为1//通过map.values()方法单独获取到Map集合的Collection集合,然后迭代器输出每一个单独的value// 所以返回类型为CollectionCollection values map.values();Iterator it values.iterator();while (it.hasNext()){Object value it.next();System.out.println(value);}}
}----------------------------------------------------输出:集合的大小是4
判断是否包含传入的键true
判断是否有传入的值true
删除键为1的值张三
李四
王五
赵六
LinkedHashMap无重复键存取顺序一致
HashMap 集合迭代出来的元素是无序的,存入和取出不一致,如果需要一致那么需要使用这个方法 ,它是HashMap的子类,和单列集合的LinkedList一样 它也使用双向链表来维护内部元素的关系,使Map元素迭代的顺序和存入的顺序一致
import java.util.*;public class h {public static void main(String[] args) {LinkedHashMap map new LinkedHashMap(); //创建Map对象map.put(2,张三); // put方法 存储键和值map.put(1,李四);map.put(3,王五);map.put(4,赵六);map.put(4,ss);Set keySet map.keySet();Iterator it keySet.iterator(); //while (it.hasNext()){Object key it.next();Object value map.get(key); // 获得每个键Key对应的值System.out.println(key:value);}}
}----------------------------------------------存取顺序一致输出:2:张三
1:李四
3:王五
4:ss
TreeMap实现类无重复键有序
Treemap是可以对集合中元素键值进行排序的类, 添加的元素自动排序 1 2 3 4 并且没有重复的键,只是后面添加的 ss 覆盖了键值4 ,证实了TreeMap 中的键必须是唯一的,不能重复且有序,如果存储了相同的,后存储的值会覆盖原有的值
import java.util.*;public class h {public static void main(String[] args) {TreeMap map new TreeMap(); //创建Map对象map.put(2,张三); // put方法 存储键和值map.put(1,李四);map.put(3,王五);map.put(4,赵六);map.put(4,ss);Set keySet map.keySet(); // 获取集合中所有的键集合Iterator it keySet.iterator(); //while (it.hasNext()){Object key it.next();Object value map.get(key); // 获得每个键Key对应的值System.out.println(key:value);}};
}-------------------------------------------------------输出:1:李四
2:张三
3:王五
4:ss
比较排序法
TreeMap 集合之所以对添加的元素的键值进行排序,其实通TreeSet 一样,它的排序也分自然排序和比较排序下面就来演示 . 其中 String 类是自定义的键
import java.util.*;
class Student{private String name;private int age;public String getName() { // 封装构造存取值get() set()return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}// 构造函数public Student(String name, int age) {super();this.name name;this.age age;}Override //表示为覆盖,重写的方法 下面也是重写了toString// 此toString会自动输出 这个方法public String toString(){return Sttudent[namename,ageage];}
}
public class h {public static void main(String[] args) {TreeMap map new TreeMap(); //创建Map对象map.put(2,张三); // put方法 存储键和值map.put(1,李四);map.put(3,王五);map.put(4,赵六);map.put(4,ss);Set keySet map.keySet(); // 获取集合中所有的键集合Iterator it keySet.iterator(); //while (it.hasNext()){Object key it.next();Object value map.get(key); // 获得每个键Key对应的值System.out.println(key:value);}}
}----------------------------------输出:1:李四
2:张三
3:王五
4:ss
Properties集合配置
Hashtable的子类
它主要用来存储字符串类型的键和值在实际开发中经常使用Properties 集合来存取应用的配置项,也就是模板,价格有这样的代码背景颜色为red 字体大小为 14px 语言问china 其配置项应该这样存储
Backrgroup-color red
Font-szie 14px
Language chinese
使用Properties 集合来配置应为
针对Properties 类针对字符串有两个存取的方法,
setProperty 将键和值添加到集合中
getProperty 获取对应的值
propertyNames 得到一个包含所有键的Enumeration ,然后利用迭代器遍历所有键的时候,再根据
getProperty 方法获得键所对应的值
import java.util.Enumeration;
import java.util.Locale;
import java.util.Properties;public class d {public static void main(String[] args) {Properties p new Properties();p.setProperty(back,red); // 使用set在集合中存入对应的键和值p.setProperty(size,14px);p.setProperty(语言,china);// 获取Enumeration对象所有键的枚举也就是所有的数据Enumeration names p.propertyNames(); while (names.hasMoreElements()){ // 循环遍历所有的键String key (String) names.nextElement(); // 拿到keyString value p.getProperty(key); // 根据键拿到对应的值System.out.println(key:value);}}
}---------------------------------------------输出:back:red
语言:china
size:14px