不用泛型只能操作某种类型进行反转

代码如下:

package com.swift.fanxing;

import org.junit.Test;

public class RenyiReverse {
@Test
public void test() {
int arr[]=new int[] {1,10,6,9,2};
reverse(arr);
} public void reverse(int[] arr) { for(int i=0;i<arr.length/2;i++) { int temp=arr[i];
arr[i]=arr[arr.length-1-i];
arr[arr.length-1-i]=temp;
} for(int x:arr) {
System.out.println(x);
}
}
}

泛型的功能除了集合迭代器上应用,还可接收任意类型类的变量或数组

package com.swift.fanxing;

import org.junit.Test;

public class RenyiReverse {
@Test
public void test() {
Integer arr[]=new Integer[] {1,10,6,9,2};//这里注意不能使用int 替代Integer
String arr2[]=new String[] {"aa","bb","cc","dd","ee"};
reverse(arr);
reverse(arr2);
} public <T> void reverse(T[] arr) { for(int i=0;i<arr.length/2;i++) { T temp=arr[i];
arr[i]=arr[arr.length-1-i];
arr[arr.length-1-i]=temp;
} for(T x:arr) {
System.out.println(x);
}
}
}

非静态声明在前,静态声明在static之后,类上声明表示全局,多泛型声明用<T,J,K>

泛型通配符

package com.swift.tongpeifu;

import java.util.ArrayList;

/*编写一个deleteElements方法,接收一个ArrayList,ArrayList中存放元素的类型不确定,
在deleteElements方法的删除ArrayList中的第一个和最后一个元素*/ public class GenericTongpeifu {
public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
System.out.println(list);
deleteElements(list);
System.out.println(list); ArrayList<Integer> list1 = new ArrayList<Integer>();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
list1.add(5);
System.out.println(list1);
deleteElements(list1);
System.out.println(list1);
} private static void deleteElements(ArrayList<?> list) { list.remove(0);
list.remove(list.size()-1);
} }

java自定义泛型 面试题:接收任意数组进行反转 泛型通配符的更多相关文章

  1. Java中定义不了可变长数组怎么办---集合 泛型

    一.集合(Collections) Java使用集合来组织和管理对象. 1.Java的集合类 集合类主要负责保存.盛装和管理对象,因此集合类也被称为容器类. 集合类分为Set.List.Map和Que ...

  2. Java 将任意数组的任意两个位置的数据进行交换

    package yw.fanxing; /** * 自定义泛型测试 * * 写一个方法,将任意数组的任意两个位置的数据进行交换 * * @author yw-tony * */ public clas ...

  3. LeetCode随缘刷题之Java经典面试题将一个字符串数组进行分组输出,每组中的字符串都由相同的字符组成

    今天给大家分享一个Java经典的面试题,题目是这样的: 本题是LeetCode题库中的49题. 将一个字符串数组进行分组输出,每组中的字符串都由相同的字符组成 举个例子:输入["eat&qu ...

  4. Java -- 利用反射 操作任意数组,包括对象数组 和 基本数据类型的数组

    items为任意数组

  5. Java常考面试题

    Java常考面试题 1. 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? 答:Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行 ...

  6. java技术面试之面试题大全

    转载自:http://blog.csdn.net/lijizhi19950123/article/details/77679489 Java 面试知识点总结 本篇文章会对面试中常遇到的Java技术点进 ...

  7. Day 8:方法上自定义泛型、类上、接口上、泛型的上下限

    泛型 泛型是jdk1.5使用的新特性  泛型的好处:   1. 将运行时的异常提前至了编译时    2. 避免了无谓的强制类型转换 泛型在集合中的常见应用:    ArrayList<Strin ...

  8. JAVA 150道笔试题知识点整理

    JAVA 笔试题 整理了几天才整理的题目,都是在笔试或者面试碰到的,好好理解消化下,对你会有帮助,祝你找工作顺利,收到满意的 offer . 1.Java 基础知识 1.1 Java SE 语法 &a ...

  9. 超全面!1.5w字总结50个Java经典基础面试题(已根据知识点分类)

    大家好,我是fancy. 在面试中将基础问题回答好就是成功的一半. 我总结了50道经典的Java基础面试题,里面包含面试要回答的知识重点,并且我根据知识类型进行了分类,可以说非常全面了. 小伙伴们点赞 ...

随机推荐

  1. 性能测试工具LoadRunner18-LR之Controller 集合点

    含义 当通过controller虚拟多个用户执行该脚本时.用户的启动或运行步骤不一定是同步的.集合点是在脚本的某处设置一个标记.当有虚拟用户运行到这个标记时,停下等待,直到所有用户都达到这个标记时,再 ...

  2. activeMq 配置(一)

    基础知识补充 1.ActiveMQ从入门到精通(一)https://www.jianshu.com/p/ecdc6eab554c 2.ActiveMQ从入门到精通(二)https://www.jian ...

  3. 小程序 页面到详情的id传递

    比如电影列表页跳转到电影详情页 在movie.js获取movieId; processDoubanData: function (moviesDouban, settedKey, categoryTi ...

  4. jQuery UI dialog 隐藏默认关闭按钮

    var O_dialog = $("#dialog-modal"); O_dialog.dialog({ closeOnEscape: false, width: 250, hei ...

  5. 在项目引用里添加上对Microsoft Word 11.0 object library的引用

    private void button1_Click(object sender, System.EventArgs e) { //调用打开文件对话框获取要打开的文件WORD文件,RTF文件,文本文件 ...

  6. ora-12541:tns: 无监听程序解决办法

    1.首先找到 Oracle 安装文件 中 listener.ora文件与tnsnames.ora文件: 列如:路径:E:\app\当前系统的账户名\product\11.2.0\dbhome_1\NE ...

  7. JavaScript流程控制语句脑图

    JavaScript流程控制语句脑图 图片是从网上找来的,在这记录一下,以备后面需要的时候查找方便. JavaScript通过规定的语句让有条件的按照一定的方式执行. 分为:循环语句 while do ...

  8. Python常用模块(二)

    一.json与pickle json与pickle模块是为了完成数据的序列化. 序列化是指把对象(变量)从内存中变成可存储或传输的过程,在Python中叫picking,在其他语言中也由其他的叫法,但 ...

  9. 从零开始的全栈工程师——JS面向对象(初篇)

    面向对象编程 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式.它使用先前建立的范例,包括模块化,多态和封装几种技术.今天,许多流行的编程语言(如Java,JavaScript,C#,C+ ...

  10. Android OS Startup

    OS puts emphases on how to provide interfaces to user's APPs for using hardware device in the conven ...