网站建设公司专业网站企业开发,网站续费怎么做分录,一级域名购买,网站鼠标代码目录 Map接口
Map及其实现类的对比#xff1a;
HashMap中元素的特点#xff1a;
相关方法#xff1a;
添加、修改操作:
删除操作#xff1a;
元素查询的操作:
元视图操作的方法#xff1a;
TreeMap的使用#xff1a;
Properties类#xff1a;
Collections工具…目录 Map接口
Map及其实现类的对比
HashMap中元素的特点
相关方法
添加、修改操作:
删除操作
元素查询的操作:
元视图操作的方法
TreeMap的使用
Properties类
Collections工具类
常用方法
排序操作
查找
复制、替换
添加
同步 Map接口
Map及其实现类的对比
java.util.Map存储一对一对的数据key-value键值对类似于数学上的函数 实现类HashMap主要实现类、LinkedHashMap继承于HashMap、TreeMap、Hashtable、Properties
HashMap主要实现类。线程不安全的效率高。可以添加null的key和value值。底层使用数组单向链表红黑树结构存储jdk8。
LinkedHashMap是HashMap的子类。在数组单向链表红黑树结构的基础上增加了双向链表用于记录添加的元素的先后顺序。在遍历元素时就可以按照添加的顺序显示。
TreeMap底层使用红黑树结构存储。可以按照添加的key-value中的key元素的指定的属性的大小进行遍历。需要考虑使用自然排序和定制排序。
Hashtable古老实现类。线程安全的效率低。不可以添加null的key或value值。底层使用数组单向链表结构存储jdk8
Properties是Hashtable的子类。其key和value都是String类型的。常用来处理属性文件。 HashMap中元素的特点
HashMap中的所有key之间是不可重复的、无序的。所有的key构成一个Set集合。key所在的类要重写hashCode( )和equals( )方法。
HashMap中的所有的value彼此之间是可重复的、无序的。所有的value构成一个Collection集合。value所在的类要重写equals方法。
HashMap中的一对key-value就构成了一个entry。Map中的entry是不可重复的、无序的。所有的entry就构成了一个Set集合。
相关方法
添加、修改操作:
object put(Object key,Object value)将指定key-value添加到(或修改)当前map对象中。
void putAll(Map m):将m中的所有key-value对存放到当前map中。 删除操作
Object remove(Object key)移除指定key的key-value对并返回value。
void clear( )清空当前map中的所有数据。 元素查询的操作:
Object get(Object key)获取指定key对应的value。
boolean containsKey(Object key)是否包含指定的key。
boolean containsValue(Object value)是否包含指定的value。
int size( )返回map中key-value对的个数。
boolean isEmpty( )判断当前map是否为空。
boolean equals(Object obj)判断当前map和参数对象obj是否相等。 元视图操作的方法
Set keySet( )返回所有key构成的Set集合。
Collection values( )返回所有value构成的Collection集合。
Set entrySet( )返回所有key-value对构成的Set集合。 TreeMap的使用
底层使用红黑树结构存储。
可以按照添加的key-value中的key元素的指定的属性的大小进行遍历。
需要考虑使用自然排序和定制排序。
要求添加进TreeMap集合中的key元素必须是同一个类型的。
定制排序的步骤与TreeSet中的一致
User u1 new User(李,19);
User u2 new User(张,20);
User u3 new User(刘,18);
User u4 new User(宋,21);
Comparator cc new Comparator()
{Overridepublic int compare(Object o1, Object o2)//按年龄从大到小{if(o1 o2){return 0;}if(!(o1 instanceof User o2 instanceof User)){throw new RuntimeException(类型错误);}User uu1 (User) o1;User uu2 (User) o2;if(uu1.getAge() uu2.getAge()){return 1;}else if(uu1.getAge() uu2.getAge()){return 0;}else{return -1;}}
};
TreeMap tt new TreeMap(cc);
tt.put(u1,111);
tt.put(u2,222);
tt.put(u3,333);
tt.put(u4,444);Iterator ii tt.entrySet().iterator();
while(ii.hasNext())
{System.out.println(ii.next());
}
Properties类
是Hashtable的子类。其key和value都是String类型的。常用来处理属性文件。
具体使用如下
File ff new File(info.properties);
System.out.println(ff.getAbsolutePath());Properties pp new Properties();
try
{FileInputStream fff new FileInputStream(ff);pp.load(fff);String name pp.getProperty(name);String password pp.getProperty(password);System.out.println(name \t password);
} catch (FileNotFoundException e)
{throw new RuntimeException(NO);
} catch (IOException e)
{throw new RuntimeException(NO);
}
将key值name和password存储在文件“info.properties”中要对整个代码中的name和password进行修改时只需要对文件中的二者进行修改即可。
文件“info.properties” 文件中等于号两边不能出现空格否则会将空格也算作key值或value值的字符内容。
Collections工具类
Collections是操作List、Set、Map等集合的工具类。 常用方法 排序操作
reverse(List)反转List 中元素的顺序。
shuffle(List)对 List 集合元素进行随机排序。
sort(List)根据元素的自然顺序对指定 List 集合元素按升序排序。
sort(ListComparator)根据指定的Comparator 产生的顺序对 List 集合元素进行排序。
swap(Listintint)将指定 list集合中的i处元素和j处元素进行交换。 查找
object max(Collection)根据元素的自然顺序返回给定集合中的最大元素。
object max(CollectionComparator)根据Comparator 指定的顺序返回给定集合中的最大元素。
object min(Collection)根据元素的自然顺序返回给定集合中的最小元素。
object min(Collection,Comparator)根据Comparator指定的顺序返回给定集合中的最小元素。
int binarySearch(List listT key)在List集合中查找某个元素的下标但是List的元素必须是T或T的子类对象而且必须是可比较大小的即支持自然排序的。而且集合也事先必须是有序的否则结果不确定。
int binarySearch(List list,T key,Comparator c)在List集合中查找某个元素的下标但是List的元素必须是T或T的子类对象而且集合也事先必须是按照c比较器规则进行排序过的否则结果不确定。
int frequency(Collection c Object o)返回指定集合中指定元素的出现次数。 复制、替换 void copy(List dest,List src)将src中的内容复制到dest中 boolean replaceAll(List list, Object oldVal, Object newVal)使用新值替换 List 对象的所有旧值
提供了多个unmodifiableXxx( )方法该方法返回指定Xxx的不可修改的视图。 添加
boolean addAll(Collection c,T..elements)将所有指定元素添加到指定collection中。 同步
Collections 类中提供了多个synchronizedxxx(方法该方法可使将指定集合包装成线程同步的集合从而可以解决多线程并发访问集合时的线程安全问题。