集合(3) Map集合,工具类

来源:互联网 发布:echo linux 写入文件 编辑:程序博客网 时间:2024/04/30 15:47


Map: 双列集合,一次存一对,键值对。要保证键的唯一性。
键相同,会出现值覆盖。

获取方法:
map集合没有迭代器,但是可以将map集合转成set集合,再使用迭代器。
map.keySet();
map.entrySet();

map.values():  //只能获取值
Collection values=map.values();

Map.Entry: 其实就是一个Map接口中的内部接口  // 静态的接口
  Set<<Map.Entry<String,String>> entrySet=map.entrySet();\
Map.Entry<String,String> me =it.next();
String value = me .getValue ;
Strin key=me.getKey();


****map的子类**
Hashtable:哈希表,是同步的,不允许null键,null值.
HashMap:哈希表,是不同步的,允许null键,null值。
TreeMap:二叉树,不同步的,可以对map集合中的键值进行排序。

**********工具类 collections **********************

Collections: 定义的都是操作Collection的静态方法。
 
 1,对list排序
     sort(list);

 // 排序方法上泛型的由来
class Student implements Comparable<Person>
{
   public int compareTo(Person p)
   { }
}
public static <T extends Comparable<? super T>> void sort(List<T> list)
{ }
 
public static void sort(List<Student> list)
{  stu1.compareTo(stu2)  }

2,逆序
 reversOrder
3, max min

4, 二分查找

 5,将非同步集合合转成同步集合
同步集合 synchronized集合(非同步集合);
coll1=Collections.synchronizedCollection(coll);

************Arrays***********
Arrays:用来操作数组的工具类,方法都是静态的

数组转成集合:

数组转成list集合,就是为了使用集合的方法操作数组中的元素
    不能使用集合中的增删方法,数组不能改变长度。

List<String> list = Arrays.asList(strs);

 如果数组中都是引用数据类型,转成集合中时,数组元素直接作为集合元素。
 如果数组中都是基本数据类型,会将数组对象作为集合中的元素。

 集合转成数组: toArray

 传入的数组长度,如果小于集合长度,方法中会创建一个新的长度和集合长度一致的数组。
如果传入的数组长度大于等于集合长度,会使用传入的数组。所以建议长度定义为集合的size()

为什么把集合转成数组:
        就是为了限定对元素的操作,比如增删。


可变参数:
  可变参数需要注意,只能定义在参数列表的最后

静态导入:
import static java.util.Collections.*;

 sort(list);

简写

0 0
原创粉丝点击