java自定义泛型 面试题:接收任意数组进行反转 泛型通配符
不用泛型只能操作某种类型进行反转
代码如下:
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自定义泛型 面试题:接收任意数组进行反转 泛型通配符的更多相关文章
- Java中定义不了可变长数组怎么办---集合 泛型
一.集合(Collections) Java使用集合来组织和管理对象. 1.Java的集合类 集合类主要负责保存.盛装和管理对象,因此集合类也被称为容器类. 集合类分为Set.List.Map和Que ...
- Java 将任意数组的任意两个位置的数据进行交换
package yw.fanxing; /** * 自定义泛型测试 * * 写一个方法,将任意数组的任意两个位置的数据进行交换 * * @author yw-tony * */ public clas ...
- LeetCode随缘刷题之Java经典面试题将一个字符串数组进行分组输出,每组中的字符串都由相同的字符组成
今天给大家分享一个Java经典的面试题,题目是这样的: 本题是LeetCode题库中的49题. 将一个字符串数组进行分组输出,每组中的字符串都由相同的字符组成 举个例子:输入["eat&qu ...
- Java -- 利用反射 操作任意数组,包括对象数组 和 基本数据类型的数组
items为任意数组
- Java常考面试题
Java常考面试题 1. 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? 答:Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行 ...
- java技术面试之面试题大全
转载自:http://blog.csdn.net/lijizhi19950123/article/details/77679489 Java 面试知识点总结 本篇文章会对面试中常遇到的Java技术点进 ...
- Day 8:方法上自定义泛型、类上、接口上、泛型的上下限
泛型 泛型是jdk1.5使用的新特性 泛型的好处: 1. 将运行时的异常提前至了编译时 2. 避免了无谓的强制类型转换 泛型在集合中的常见应用: ArrayList<Strin ...
- JAVA 150道笔试题知识点整理
JAVA 笔试题 整理了几天才整理的题目,都是在笔试或者面试碰到的,好好理解消化下,对你会有帮助,祝你找工作顺利,收到满意的 offer . 1.Java 基础知识 1.1 Java SE 语法 &a ...
- 超全面!1.5w字总结50个Java经典基础面试题(已根据知识点分类)
大家好,我是fancy. 在面试中将基础问题回答好就是成功的一半. 我总结了50道经典的Java基础面试题,里面包含面试要回答的知识重点,并且我根据知识类型进行了分类,可以说非常全面了. 小伙伴们点赞 ...
随机推荐
- vuex初探
WW(是什么.为什么) 什么是vuex? 如果你学过react,那么你就更容易理解vuex,因为vuex相当于react中的redux,它是用于管理数据的工具.我们看一看官网的介绍: Vuex 是一个 ...
- Kure讲HTML_div标签和table标签
为什么要把这两个标签放在一起讲? 个人认为div标签可以算是一个万能标签,它可以通过CSS(层叠样式表)来模仿表格的形式来生成一个表格.那么很多人可能会疑惑那在开发的时候,到底是用div+css的形式 ...
- Windows 2008 R2 防火墙允许Serv-U通过的方法
在Windows 2008 R2上安装了Serv-U FTP服务端软件之后,无法通过客户端连接,究其原因是Windows 2008的防火墙没有开启FTP端口,而且在防火墙上添加Serv-U程序也不行, ...
- 变量&数据类型
php标记:四种php标记 1.<?php echo 'hello';?> 2.<? echo 'hello'; ?> //短标记 3.&l ...
- HDU 4342——History repeat itself——————【数学规律】
History repeat itself Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HDU. O ...
- springboot微信支付,支付二维码生成
https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_1 微信扫码支付开发者文档,里面会有支付流程的教程 接口链接 URL地址:htt ...
- Hibernate课程 初探一对多映射3-1 单向多对一简介
多对一的关系和关系数据库中的外键参照关系最匹配,即在己方的表中的一个外键参照另一个表中的主键! 通过在多方持有一方的引用来实现,需要在多的一方使用<many-to-one>来配置
- MyBatis之会话Session原理
MyBatis 之会话 Session 执行逻辑 1.SQL 会话工厂构建器类 SqlSessionFactoryBuilder 的 build 方法用于构建 SqlSessionFactory 类的 ...
- 在 Excel 中设置图片
package com.smbea.demo.excel; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStr ...
- Chrome浏览器安装vue-devtools插件
插件功能:方便在浏览器调试vue代码 插件git地址:https://github.com/vuejs/vue-devtools 因为chrome要FQ,打不开,所以不能直接进去安装拓展程序,只能选择 ...