一个函数 形参是List类型 怎么实现不同类型如:List和List两种功能
一个函数 形参是List类型 如何实现不同类型如:List<Integer>和List<String>两种功能
一个函数 形参是List类型 如何实现List<Integer>和List<String>两种功能
如
和
两个函数作用是相同的,但是无法通过上述重载。
问题是list迭代时候需要用到不止it.next(),所以需要专门的变量来放置it.next(),可在变量声明时需要声明类型,如果不能重载,就不知道怎么判断it.next()的类型;
初学者……大神勿喷
------解决思路----------------------
试试这种
public LIst remDup(List<? extends Serializable> list)
或者
public <E> List<E> remDup(List<E> list)
------解决思路----------------------
泛型
------解决思路----------------------
不知道list中的元素是Integer还是String?
对于你说的这种问题,通过 list.get() instanceof Integer就可以判断具体类型了撒,很难吗?
------解决思路----------------------
将参数定义为List<T>,
在方法体内部对类型进行判断,只对Int和String类型进行操作,
------解决思路----------------------
泛型解决。
一个函数 形参是List类型 如何实现List<Integer>和List<String>两种功能
如
static List remDup(List<String> list)
和
static List remDup(List<Integer> list)
两个函数作用是相同的,但是无法通过上述重载。
问题是list迭代时候需要用到不止it.next(),所以需要专门的变量来放置it.next(),可在变量声明时需要声明类型,如果不能重载,就不知道怎么判断it.next()的类型;
初学者……大神勿喷
------解决思路----------------------
试试这种
public LIst remDup(List<? extends Serializable> list)
或者
public <E> List<E> remDup(List<E> list)
------解决思路----------------------
泛型
------解决思路----------------------
不知道list中的元素是Integer还是String?
对于你说的这种问题,通过 list.get() instanceof Integer就可以判断具体类型了撒,很难吗?
static <E> List<E> remDup(List<E> list) {
for (E e : list) {
if (e instanceof Integer) {
//TODO
} else if (e instanceof String) {
//TODO
}
}
return null;
}
}
------解决思路----------------------
将参数定义为List<T>,
在方法体内部对类型进行判断,只对Int和String类型进行操作,
------解决思路----------------------
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
class Main {
static <T> List<T> remDup(List<T> list) {
for (T item : list) {
System.out.println(item);
}
return list;
}
public static void main(String[] args) {
List<Integer> listInt = new ArrayList<>(Arrays.asList(1, 6, 3, 89, 5));
remDup(listInt);
List<String> listStr = new ArrayList<>(Arrays.asList("one", "two", "four"));
remDup(listStr);
}
}
泛型解决。