A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 火麒麟 中级黑马   /  2013-10-10 11:09  /  1487 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import org.junit.Test;

public class demo6 {
   
   
    public <T> T reverse(T[] arr){
        int start = 0;
        int end = arr.length-1;
        while(true){
            if(start>=end){
                break;
            }
            T temp = arr[start];
            arr[start] = arr[end];
            arr[end] = temp;
            start++;
            end--;
        }
        
        return (T) arr;
    }

    @Test
    public void test(){
        int[] arr = {2,6,3};
        for(int i : reverse(arr)){
            System.out.println(i);
        }
        
    }


//在源码上修改就可以啊

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

2 个回复

倒序浏览
T代表一个引用类型,而int是一个基本类型,所以无法传递。把int[]改成Integer[] 就可以了。
  1. public class Reverse {

  2.         public static void main(String[] args) {
  3.                 Integer[] arr = { 2, 0, 1, 3, 1, 0, 1, 0 };
  4.                 reverse(arr);
  5.                 for (int i : arr) {
  6.                         System.out.print(i + " ");
  7.                 }
  8.         }

  9.         public static <T> void reverse(T[] arr) {
  10.                 for (int left = 0, right = arr.length - 1; left < right; left++, right--) {
  11.                         T temp = arr[left];
  12.                         arr[left] = arr[right];
  13.                         arr[right] = temp;
  14.                 }
  15.         }

  16. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
To 金牌黑马 2013-10-10 12:47:11
藤椅

楼主你好。如果问题已解决请及时将帖子状态改为提问结束,如果未解决请继续提问。谢谢合作
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马