Map
Posted xiaoruirui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Map相关的知识,希望对你有一定的参考价值。
hashmap
线程不安全,可以存入null,key不可重复(怎么实现不可重复呢?),values可以重复,
实现的时在数组中用key值通过hashcode来存一位置,如果key值相同就通过链表把其连接起来,如果长度大于8的时候就是用红黑树
常用方法,keySet,EntrySet,values,put,contion等方法
实现一个String str="dsagjgsadjiof"找出其中的字符个数的方法,思想,通过不可重复的key每当出现一次的时候就values+1
public static void main(String[] args) // TODO Auto-generated method stub String str = "ABCDEABCDABC"; query(str); /*字符串String str = “ABCDEABCDABC”;定义一个方法query, 该方法算出该字符串中每一个字符的个数,打印格式如: A——3 B——3*/ public static void query(String string) char[] c=string.toCharArray(); HashMap hashMap = new HashMap(); for (char d : c) if(hashMap.containsKey(d)) hashMap.put(d, (int)hashMap.get(d)+1); else hashMap.put(d, 1);
collections
集合操作类,把集合操作里面和Arrays中的方法差不多copy,max等等
hashtable
同步的方法实现线程安全,不能为null
concrrenthashmap
同步的代码块,这样速度更快也线程安全,不能为null
propreties
是hashtable的子类可以实现把内存的数据读入磁盘
package cn.jiedada.homework; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.PrintStream; import java.io.Reader; import java.util.Properties; public class PropretiesTest private static Reader inStream; //相对路劲:该文件为根目录 //绝对路劲:磁盘上的路劲 //3. 使用Properties把自己的 姓名-年龄 存放起来,然后写到磁盘文件上面; public static void main(String[] args) throws IOException // TODO Auto-generated method stub Properties properties = new Properties(); //不能用put要用set方法这样才能存入 PrintStream printStream = new PrintStream("杰帅.txt"); properties.setProperty("杰帅", "21"); properties.list(printStream); FileInputStream fileInputStream = new FileInputStream("杰帅.txt"); properties.load(fileInputStream); System.out.println(properties);
泛型
extends为上线,super为下线,把数据的存入取出指定一个范围,只能对这一种元素操作
以上是关于Map的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin集合操作 ⑤ ( Map 集合 | 获取 Map 值 | Map 遍历 | 可变 Map 集合 )