`
zxb9181213
  • 浏览: 3428 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

集合,泛型,枚举

 
阅读更多

今天学的有点儿多,感觉有点儿跟不上了,可能以后的速度都有点儿加快吧,虽然老师说这些都简单了解一下就可以了,并不常用什么的,但是总感觉没有学到什么实质性的东西,反正没有理解透彻吧。晚上攻克了好久,还是有些迷迷糊糊的。

现在先总结一下

今天又完善了一下集合,主要就是Map接口的内容,还有一个定制排序的方法。Map是键值对,每个Key对应一个 Value,不能重复,如果Key重复了,就会覆盖原来的键值对不过这里面的值没有限制,可以重复。如何遍历Map集合的键值对呢,方法如下:

Map map  = new HashMap();

Set set = map.keySet();

Iterator it = set.iterator();

While(it.hasNext()){

Object key = it.next();

Object value =map.get(key);

}

然后就是定制排序。定制排序可以对TreeSetTreeMap中的所有key值进行排序,我就写一下TreeSet定制排序的方法吧,还是举例说明

假定有个学生类,而每个学生对象都包括了 名字,年龄,身高,和体重这四个属性。可以用定制排序分别按照年龄,身高和体重进行排序。(当然名字也可以,这里暂不讨论)。

首先要写一下定制方法

class StudentAge implements Comparator<Student>{

public int compare(Student o1, Student o2) {

if(o1.age== o2.age){

return 0;

}else if(o1.age> o2.age){

return 1;

}

return -1;

}

}//这是按照年龄大小排序的,体重,身高同样的方法。

Comparator  studentAge  =  new StudentAge();

Set set = new TreeSet(studentAge);

这样这个TreeSet集合里面就按照年龄的大小进行排序了。

 还有就是今天老师简单讲了一下Map的子类properties,用了一个方法,感觉挺厉害的,哈哈,下面再写一下。

Properties pro = new Properties();

pro.load(new InputStream(config));

Set<?> set = pro.entrySet();

System.out.println(set);

实现这个方法的时候,是在那个目录下有一个名字叫config的文件,然后读取里面的内容。(轻喷,轻喷···)

然后就是泛型了,泛型我感觉跟之前学集合老师说的差不多,就是为了让集合里面的元素统一,这样取出来的时候也不用进行强制类型转换了什么的,其他的用法我还在摸索中,具体的应用现在还参悟的不透,只知道在集合中用。

枚举呢我也不太懂有啥应用,就是知道必须在枚举类中写出来所有的情况。而且是用enum来修饰的,今天做的练习就是用enum枚举类把一周七天罗列出来,然后再根据用户从命令行输入的数字来打印出来星期几。

Enum Week{

MONDAY ,  TUESDAY , WENDESDAY , THURSDAY , FARIDAY , SATURDAY , SUNDAY

}

然后我把Week枚举类 转成了数组。

Week【】 week = Week.values();

然后根据命令行输入的参数,调用weeki-1】;来获得···

写完后,我就觉得有点儿晕了,既然枚举转化成数组来使用,为啥不直接就定义为一个数组呢···哈哈,好吧,毕竟是小白,不懂得太多了。

最近这几天的感觉,就是越来越晕了,老师说这些东西都是熟能生巧的,都是调方法的,只要能看懂就可以了,虽然现在能看懂是没问题,不过还是觉得缺乏练习,加油吧,不能让wp大神对我失望了,当然更重要的是自己不能放松,要对得起自己!

<!--EndFragment-->
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics