Chinaunix首页 | 论坛 | 博客
  • 博客访问: 142687
  • 博文数量: 19
  • 博客积分: 230
  • 博客等级: 二等列兵
  • 技术积分: 239
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-01 12:47
文章分类
文章存档

2014年(5)

2013年(4)

2012年(10)

分类: Java

2012-05-19 12:13:19

前写天看了下关于Java泛型的知识,不是很理解,还有待于进一步研究,先记录下简单的代码。
下面是泛型的编写

点击(此处)折叠或打开

  1. public class Pair<T> {

  2.     /* T 泛型变量; 泛型类可以有多个泛型变量,用<>括起来 */
  3.     private T first;
  4.     private T second;

  5.     public Pair() {
  6.         first = null;
  7.         second = null;
  8.     }

  9.     public Pair(T first, T second) {
  10.         super();
  11.         this.first = first;
  12.         this.second = second;
  13.     }

  14.     public T getFirst() {
  15.         return first;
  16.     }

  17.     public T getSecond() {
  18.         return second;
  19.     }

  20.     public void setFirst(T first) {
  21.         this.first = first;
  22.     }

  23.     public void setSecond(T second) {
  24.         this.second = second;
  25.     }

  26. }
这个和写普通的类差不多,只是这里传了一个T,使用时候它会把T自动的变成你给传入的类型,如果传入int那么返回的就应该是int ,如果给它传入String那么就返回String,也可以是编写的对象Users什么的都可以。这在分页的时候经常会用到,会弄一个pagebean里边会放从数据库中取出来的列表。

点击(此处)折叠或打开

  1. class ArrayAlg{
  2.     
  3.     public static Pair<String> minmax(String[] a){
  4.         if(a == null || a.length ==0){
  5.             return null;
  6.         }
  7.         String min=a[0];/* 先判空再使用 */
  8.         String max=a[0];
  9.         for(int i =0;i<a.length;i++){
  10.             if(min.compareTo(a[i])>0)min=a[i];
  11.             if(max.compareTo(a[i])<0)max=a[i];
  12.         }
  13.         return new Pair<String>(min,max);
  14.     }
  15.     public static <T> T getMiddle(T[] a){
  16.         return a[a.length/2];
  17.     }
  18.     public static <U extends Comparable<U>> U getMinmum(U[] a){/* 泛型 实现接口 也用extends关键字,且可以实现多个用&分隔,但只能有个一类且如果有要放在第一个位置 */
  19.         if(a==null|| a.length ==0){
  20.             return null;
  21.         }
  22.         U min = a[0];
  23.         for(int i=0;i<a.length;i++){
  24.             if(min.compareTo(a[i])>0){
  25.                 min = a[i];
  26.             }
  27.         }
  28.         
  29.         return min;
  30.     }
  31. }

上面这些是方法,下面的是测试

点击(此处)折叠或打开

  1. public class PairTest1 {

  2.     public static void main(String[] args){
  3.         String[] words = {"marry","has","a","little","lamb"};
  4.         Pair<String> pair = ArrayAlg.minmax(words);
  5.         System.out.println("min-first:"+pair.getFirst()+",max-second:"+pair.getSecond());
  6.         String min = ArrayAlg.getMinmum(words);
  7.         System.out.println("min===>"+min);
  8.         
  9.         String[] names = {"smith","jhone","katty"};
  10.         String name = ArrayAlg.<String>getMiddle(names);//ArrayAlg.getMiddle(names); 也可以
  11.         System.out.println(name);
  12.     }
  13. }

这写代码在《Think in Java》中可以找到,我也是刚开始学习,在这里就算先做个记录啦!
阅读(1463) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~