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为下线,把数据的存入取出指定一个范围,只能对这一种元素操作