前写天看了下关于Java泛型的知识,不是很理解,还有待于进一步研究,先记录下简单的代码。
下面是泛型的编写
- public class Pair<T> {
- /* T 泛型变量; 泛型类可以有多个泛型变量,用<>括起来 */
- private T first;
- private T second;
- public Pair() {
- first = null;
- second = null;
- }
- public Pair(T first, T second) {
- super();
- this.first = first;
- this.second = second;
- }
- public T getFirst() {
- return first;
- }
- public T getSecond() {
- return second;
- }
- public void setFirst(T first) {
- this.first = first;
- }
- public void setSecond(T second) {
- this.second = second;
- }
- }
这个和写普通的类差不多,只是这里传了一个T,使用时候它会把T自动的变成你给传入的类型,如果传入int那么返回的就应该是int ,如果给它传入String那么就返回String,也可以是编写的对象Users什么的都可以。这在分页的时候经常会用到,会弄一个pagebean里边会放从数据库中取出来的列表。
- class ArrayAlg{
-
- public static Pair<String> minmax(String[] a){
- if(a == null || a.length ==0){
- return null;
- }
- String min=a[0];/* 先判空再使用 */
- String max=a[0];
- for(int i =0;i<a.length;i++){
- if(min.compareTo(a[i])>0)min=a[i];
- if(max.compareTo(a[i])<0)max=a[i];
- }
- return new Pair<String>(min,max);
- }
- public static <T> T getMiddle(T[] a){
- return a[a.length/2];
- }
- public static <U extends Comparable<U>> U getMinmum(U[] a){/* 泛型 实现接口 也用extends关键字,且可以实现多个用&分隔,但只能有个一类且如果有要放在第一个位置 */
- if(a==null|| a.length ==0){
- return null;
- }
- U min = a[0];
- for(int i=0;i<a.length;i++){
- if(min.compareTo(a[i])>0){
- min = a[i];
- }
- }
-
- return min;
- }
- }
上面这些是方法,下面的是测试
- public class PairTest1 {
- public static void main(String[] args){
- String[] words = {"marry","has","a","little","lamb"};
- Pair<String> pair = ArrayAlg.minmax(words);
- System.out.println("min-first:"+pair.getFirst()+",max-second:"+pair.getSecond());
- String min = ArrayAlg.getMinmum(words);
- System.out.println("min===>"+min);
-
- String[] names = {"smith","jhone","katty"};
- String name = ArrayAlg.<String>getMiddle(names);//ArrayAlg.getMiddle(names); 也可以
- System.out.println(name);
- }
- }
这写代码在《Think in Java》中可以找到,我也是刚开始学习,在这里就算先做个记录啦!
阅读(1343) | 评论(0) | 转发(0) |