黑马程序员技术交流社区

标题: 关于泛型的 [打印本页]

作者: 记得上线    时间: 2012-7-18 07:43
标题: 关于泛型的
import java.util.*;
class CollectionsDemo
{
public static void sop(Object  obj)
{
  System.out.println(obj);
}
public static void main(String[] args)
{
  List<String> list=new ArrayList<String>();
  
  list.add("abcd");
  list.add("aaa");
  list.add("zz");
  list.add("kkkkk");
  list.add("qq");
  list.add("z");
  
  sop(list);
  //sop(Collections.sort(list));
  //sop(list);
  sop(halfSearch1(list,"bb"));
}
public static <Y> int halfSearch1(List<Y> List,Y key)//此处的变量类型该怎么加,我加了与集合一样的类型一直报错
{
  int max,mid,min;
  
   max=List.size()-1;
  min=0;
  while(min<max)
  {
   mid=(min+max)>>1;
   Y t=List.get(mid);
   int num=t.compareTo(key);
   if(num>max)
    max=mid-1;
   else if(mid<0)
    min=mid+1;
   else
    return mid;
   
  }
  return -min-1;
}
作者: 康大玮    时间: 2012-7-18 07:58
public static int halfSearch(List<String> list,String key)
作者: 记得上线    时间: 2012-7-18 08:11
康大玮 发表于 2012-7-18 07:58
public static int halfSearch(List list,String key)

哥们 谢谢,那泛型的怎么加那
作者: 记得上线    时间: 2012-7-18 08:20
康大玮 发表于 2012-7-18 07:58
public static int halfSearch(List list,String key)

懂了  谢谢
作者: 康大玮    时间: 2012-7-18 08:35
记得上线 发表于 2012-7-18 08:11
哥们 谢谢,那泛型的怎么加那

首先你得明确什么时候定义泛型:是在当类中要操作的引用数据类型不确定的时候。
而那行代码List的类型一定是String,
泛型定义在方法上是为了让不同方法可以操作不同类型,而且类型还不确定。
那么可以将泛型定义在方法上。在这就没有必要 。
给你举个例子吧
class Demo<T>
{
        public  void show(T t)
        {
                System.out.println("show:"+t);
        }
        public <Q> void print(Q q)
        {
                System.out.println("print:"+q);
        }
        public  static <W> void method(W t)
        {
                System.out.println("method:"+t);
        }
}
class GenericDemo
{
        public static void main(String[] args)
        {
                Demo <String> d = new Demo<String>();
                d.show("haha");
                //d.show(4);
                d.print(5);
                d.print("hehe");

                Demo.method("hahahahha");
}
作者: 康大玮    时间: 2012-7-18 08:36
你先看看懂不懂




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2