2012年3月19日学习



一.设计模式

建造者模式,这个模式比较陌生,暂时没有想到如何在实际的项目中运用,只是简单的通过书中的案例进行了实现

定义
  将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。
实用范围
  1.当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
  2.当构造过程必须允许被构造的对象有不同表示时。
角色
  在这样的设计模式中,有以下几个角色:
  1,builder:为创建一个产品对象的各个部件指定抽象接口。
  2,ConcreteBuilder:实现Builder的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示,并 提供一个检索产品的接口。
  3,Director:构造一个使用Builder接口的对象。
  4,Product:表示被构造的复杂对象。ConcreteBuilder创建该产品的内部表示并定义它的装配过程,包含定义组成部件的类,包括将这些部件装配成最终产品的接口。


二、java泛型


http://hi.baidu.com/enterjava/blog/item/87d094362f9fbf86a71e1207.html


总图:
            (Collection)       括号中的是接口,旁边的是此接口的实现类 
                  ↑ 
          |ˉˉˉˉˉˉˉˉˉ|     
     HashSet     LinkedList            Hashtable 
       (Set)    Vector, ArrayList       Hashmap 
          ↑           (List)                   (Map) 
          |                                         ↑ 
          |                                          | 
      TreeSet                                 TreeMap 
   (SortedSet)                            (SortedMap) 


Java Collections 和 Java Collections 区别:


collections主要提供一些,排序的算法,随机的,反向的, 
collection 是容器的祖先接口


Collection是集合类的上级接口,继承与他的接口主要有 Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。




几个常用类的区别 
1.ArrayList: 元素单个,效率高,多用于查询 
2.Vector: 元素单个,线程安全,多用于查询 
3.LinkedList:元素单个,多用于插入和删除 
4.HashMap: 元素成对,元素可为空 
5.HashTable: 元素成对,线程安全,元素不可为空 




如果能用数组的时候(元素类型固定,数组长度固定),请尽量使用数组来代替List; 
如果没有频繁的删除插入操作,又不用考虑多线程问题,优先选择ArrayList; 
如果在多线程条件下使用,可以考虑Vector; 
如果需要频繁地删除插入,LinkedList就有了用武之地; 
如果你什么都不知道,用ArrayList没错。 


Collections和Arrays 
在 Java集合类框架里有两个类叫做Collections(注意,不是Collection!)和Arrays,这是JCF里面功能强大的工具,但初学者往往会忽视。按JCF文档的说法,这两个类提供了封装器实现(Wrapper Implementations)、数据结构算法和数组相关的应用。 
想必大家不会忘记上面谈到的“折半查找”、“排序”等经典算法吧,Collections类提供了丰富的静态方法帮助我们轻松完成这些在数据结构课上烦人的工作: 
binarySearch:折半查找。 


sort:排序,这里是一种类似于快速排序的方法,效率仍然是O(n * log n),但却是一种稳定的排序方法。 


reverse:将线性表进行逆序操作,这个可是从前数据结构的经典考题哦! 


rotate:以某个元素为轴心将线性表“旋转”。 


swap:交换一个线性表中两个元素的位置。 
…… 
Collections还有一个重要功能就是“封装器”(Wrapper),它提供了一些方法可以把一个集合转换成一个特殊的集合,如下: 


unmodifiableXXX:转换成只读集合,这里XXX代表六种基本集合接口:Collection、List、Map、Set、SortedMap和SortedSet。如果你对只读集合进行插入删除操作,将会抛出UnsupportedOperationException异常。 


synchronizedXXX:转换成同步集合。 


singleton:创建一个仅有一个元素的集合,这里singleton生成的是单元素Set, 
singletonList和singletonMap分别生成单元素的List和Map。 






三、android selector背景选择器


1.使用说明(自己的理解):
使用Button的情况:首先在btu的XML说明中,书写 android:background="@drawable/btu_style",完成btu_style.xml的按钮风格文件,在完成<item android:state_pressed="true"       android:drawable="@drawable/menu_clear" />的书写。


2.全局即为:


main.xml
<Button 
android:id="@+id/btu"
android:text="按钮"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/btu_style"
/>


btu_style.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" 
 android:drawable="@drawable/menu_clear" />
<item android:drawable="@drawable/menu_home" />  
</selector>




以下是这个网站的说明:http://blog.sina.com.cn/s/blog_4b93170a0100qhwa.html









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值