应用程序开发——集合(泛型、List与Set集合互转换、Map、Properties、集合工具类Collections、同步控制)

时间:2023-02-16 16:55:44

泛型:规定集合中存放对象的数据类型

●  语法 集合类型<数据类型>  集合对象名  = new  接口实现类<数据类型>();
● 
例子 :List<Person>  list  = new  ArrayList<Person>();
注意:没有显示的指明泛型时,它的类型默认为Object,只能在泛型中存放引用数据类型,基本数据类型时必须使用其包装类(引用数据类型),E和T是泛型的标志,表示任意数据类型
------------------------------------------------------------------------------------------------------------------
List与Set集合相互转换: 在彼此的构造器中传入彼此的对象
应用程序开发——集合(泛型、List与Set集合互转换、Map、Properties、集合工具类Collections、同步控制)
------------------------------------------------------------------------------------------------------------------
Map接口:存储的是一串“key-value”键值对的entry
●  与Collection并列存在。用于保存具有映射关系的数据:Key-Value
●  key和value都可以是任何引用类型的数据
●  key用Set来存放,不允许重复(同一个Map对象所对应的类,须重写hashCode()和equals()方法)
●  key和value之间存在单向一对一关系,即通过指定的key总能找到唯一的、确定的value值
------------------------------------------------------------------------------------------------------------------
Map常用方法: (声明对象:Map map = new  HashMap())
●  put(Object  key,Object  value) :添加元素(如果key存在,则修改value值。key不存在,则添加)
●  remove(Object  key) :删除集合中指定key的集合元素,并返回key对应的value值
●  putAll(Map  t) :向集合中添加一个Map集合
●  c lear() :清除集合中的元素
●  get(Object  key) :通过key键查找对应的value值。如果key不存在则返回null
●  containsKey(Object  key) :集合中是否存在指定的key键,存在返回true,否则返回false
●  containsValue(Object  value) :集合中是否存在指定的value值,存在返回true,否则返回false
●  size() :获得集合的长度
●  isEmpty() :判断集合是否为空,为空返回true  否则返回false
●  equals(Object  obj) :比较两个集合是否相等,不考虑元素的顺序
●  keySet() :通过循环遍历出所有key键( for(Object  o : map.keySet( ) ) {  }  )
●  values() :通过循环遍历出所有value值( for(Object  o : map.values( ) ) {  }  )
●  entrySet() :把集合中的元素转换成set集合,set集合存放的是map集合中的entry对象
应用程序开发——集合(泛型、List与Set集合互转换、Map、Properties、集合工具类Collections、同步控制)
------------------------------------------------------------------------------------------------------------------
Map接口常用实现类:
●  HashMap :Map集合主要实现类,允许使用null键和null值,与HashSet一样,不保证映射的顺序
●  LinkedHashMap ( LinkedHashSet类似):HashMap的子类,可以维护Map的迭代顺序(和插入顺序一致)
●  TreeMap  ( TreeSet类似):Key键的数据类型必须相同(Key键上存储引用数据类型需实现Comparable接口)
●  Hashtable :很古老,线程安全,与HashMap类似,但是不允许使用null键和null值
●  Properties :Hashtable的子类,用于处理属性文件(key、value 都是字符串类型)
应用程序开发——集合(泛型、List与Set集合互转换、Map、Properties、集合工具类Collections、同步控制)
注意:存取数据使用setProperty(String  key,String  value)和getProperty(String  key)
------------------------------------------------------------------------------------------------------------------
集合的工具类: Collections:均为static方法
排序操作:
●  reverse(List) :反转List中元素的顺序
●  shuffle(List) :对List集合元素进行随机排序
●  sort(List) :根据元素的自然顺序对指定List集合元素按升序排序
●  sort(List,Comparator) :根据指定的Comparator产生的顺序对List集合元素进行排序
●  swap(List,int, int) :将指定list集合中的 i 处元素和 j 处元素进行交换
查找、替换:
●  max(Collection) :根据元素的自然顺序,返回给定集合中的最大元素
●  max(Collection,Comparator) :根据Comparator指定的顺序,返回给定集合中的最大元素
●  min(Collection) :根据元素的自然顺序,返回给定集合中的最小元素
●  min(Collection,Comparator) :根据Comparator指定的顺序,返回给定集合中的最小元素
●  frequency(Collection,Object) :返回指定集合中指定元素的出现次数
●  copy(List  dest,List  src) :将src中的内容复制到dest中
●  replaceAll(List  list,Object  oldVal,Object  newVal) :使用新值替换List对象的所有旧值
------------------------------------------------------------------------------------------------------------------
同步控制:
应用程序开发——集合(泛型、List与Set集合互转换、Map、Properties、集合工具类Collections、同步控制)
Collections类中提供了多个synchronizedXxx()方法,该方法可使将指定集合包装成线程同步的集合,从而可以解决多线程并发访问集合时的线程安全问题
------------------------------------------------------------------------------------------------------------------
自己整理,有些地方是扒拉的,如有侵犯,还望告知