java_集合(四)

2014-11-24 09:17:20 · 作者: · 浏览: 2
//获取map集合中所有的值。
Collectioncoll = map.values();

System.out.println(coll);
System.out.println(map);
}
}


map集合的两种取出方式:
1,Set keySet:将map中所有的键存入到Set集合。因为set具备迭代器。
所有可以迭代方式取出所有的键,在根据get方法。获取每一个键对应的值。
Map集合的取出原理:将map集合转成set集合。在通过迭代器取出。

2,Set> entrySet:将map集合中的映射关系存入到了set集合中,
而这个关系的数据类型就是:Map.Entry

Entry其实就是Map中的一个static内部接口。
为什么要定义在内部,
因为只有有了Map集合,有了键值对,才会有键值的映射关系。
关系属于Map集合中的一个内部事物。
而且该事物在直接访问Map集合中的元素。


对学生对象的年龄进行升序排序。

import java.util.*;

class StuNameComparator implementsComparator
{
publicint compare(Student s1,Student s2)
{
intnum = s1.getName().compareTo(s2.getName());
if(num==0)
returnnew Integer(s1.getAge()).compareTo(new Integer(s2.getAge()));
returnnum;
}
}

class MapTest2
{
publicstatic void main(String[] args)
{
TreeMaptm = new TreeMap(new StuNameComparator());

tm.put(newStudent("blisi3",23),"nanjing");
tm.put(newStudent("lisi1",21),"beijing");
tm.put(newStudent("alisi4",24),"wuhan");
tm.put(newStudent("lisi1",21),"tianjin");
tm.put(newStudent("lisi2",22),"shanghai");

Set>entrySet = tm.entrySet();

Iterator>it = entrySet.iterator();

while(it.hasNext())
{
Map.Entryme = it.next();

Studentstu = me.getKey();
Stringaddr = me.getValue();
System.out.println(stu+":::"+addr);
}
}
}

集合框架的工具类。
Collections:集合框架的工具类。里面定义的都是静态方法。
Collections和Collection的区别是:
Collection是集合框架中的一个顶层接口,它里面定义了单列集合的共性方法。
它有两个常用的子接口,
List:对元素都有定义索引。有序的。可以重复元素。
Set:不可以重复元素。无序。
Collections是集合框架中的一个工具类。该类中的方法都是静态的
提供的方法中有可以对list集合进行排序,二分查找等方法。
通常常用的集合都是线程不安全的。因为要提高效率。
如果多线程操作这些集合时,可以通过该工具类中的同步方法,将线程不安全的集合,转换成安全的。

集合变数组。
Collection接口中的toArray方法。

import java.util.*;
class CollectionToArray
{
publicstatic void main(String[] args)
{
ArrayListal = new ArrayList();
al.add("abc1");
al.add("abc2");
al.add("abc3");

//1,指定类型的数组的长度:
//当指定类型的数组长度小于了集合的size,那么该方法内部会创建一个新的数组。//长度为集合的size。
// 当指定类型的数组长度大于了集合的size,就不会新创建了数组。而是使用传递进//来的数组。
// 所以创建一个刚刚好的数组最优。
// 2,为什么要将集合变数组?
// 为了限定对元素的操作。不需要进行增删了。

String[]arr = al.toArray(new String[al.size()]);
System.out.println(Arrays.toString(arr));
}
}

---------------------------------------------------------------------------------------------
System:类中的方法和属性都是静态的。
out:标准输出,默认是控制台。
in:标准输入,默认是键盘。

描述系统一些信息。
获取系统属性信息:PropertiesgetProperties();
import java.util.*;
class SystemDemo
{
publicstatic void main(String[] args)
{
Propertiesprop = System.getProperties();

//