如何使其成为java中的通用方法? public void setSRC(int-var) { 如果(src==null) { src=新整数[1]; src[0]=var; } 其他的 { int i=0; int[]temp=null; temp=新整型[src.长度]; 温度=src; i=温度长度; src=新整数[i+1]; 对于(int j=0;j

如何使其成为java中的通用方法? public void setSRC(int-var) { 如果(src==null) { src=新整数[1]; src[0]=var; } 其他的 { int i=0; int[]temp=null; temp=新整型[src.长度]; 温度=src; i=温度长度; src=新整数[i+1]; 对于(int j=0;j,java,generics,Java,Generics,我希望使这个方法通用或模板方法。感谢您的任何帮助。期待它在使用Java数组的地方使用通用集合 public void setSRC(int var) { if (src== null) { src = new int[1]; src[0] = var; } else { int i = 0; int[] temp = null; temp = new int[src.lengt

我希望使这个方法通用或模板方法。感谢您的任何帮助。期待它

在使用Java数组的地方使用通用集合

public void setSRC(int var)
{
    if (src== null)
    {
        src = new int[1];
        src[0] = var;
    }
    else
    {
        int i = 0;
        int[] temp = null;
        temp = new int[src.length];
        temp = src;
        i = temp.length;
        src = new int[i+1];
        for (int j =0; j < temp.length ; j++)
                    src[j] = temp[j];
        src[i] = var;

    }
}
使用

Collection=newarraylist();

在使用Java数组的地方使用泛型集合

public void setSRC(int var)
{
    if (src== null)
    {
        src = new int[1];
        src[0] = var;
    }
    else
    {
        int i = 0;
        int[] temp = null;
        temp = new int[src.length];
        temp = src;
        i = temp.length;
        src = new int[i+1];
        for (int j =0; j < temp.length ; j++)
                    src[j] = temp[j];
        src[i] = var;

    }
}
使用

Collection=newarraylist();

使用集合而不是数组。除了Java数组不与泛型混合这一事实之外,它们实际上被设计为附加到。您的代码可以替换为:

Collection<T> collection = new ArrayList<T>();
private List src=new ArrayList();
公共无效设置RC(T var){
src.add(var);
}

使用集合而不是数组。除了Java数组不与泛型混合这一事实之外,它们实际上被设计为附加到。您的代码可以替换为:

Collection<T> collection = new ArrayList<T>();
private List src=new ArrayList();
公共无效设置RC(T var){
src.add(var);
}

此代码将创建一个具有通用数据类型的类,并将存储该数据类型对象的动态数组

private List<T> src = new ArrayList<T>();

public <T> void setSRC(T var) {
    src.add(var);
}
import java.util.*;
类Test2
{
私有集合src=新向量();
公共无效设置RC(T var)
{
src.add(var);
}
公共静态void main(字符串[]args)
{
test2t=新的Test2();
t、 setSRC(5);
Test2 t2=新的Test2();
t、 setSRC(5.5);
}
}
问题是,如果这就是你所做的一切,就没有必要麻烦了。看起来您正在尝试编写自己的动态数组类,Java中有很多类可供选择。为什么要重新发明轮子


现在,如果您想做一些特定的事情,请告诉我们您想完成什么,我们可以提供更好的答案。

此代码将创建一个具有泛型数据类型的类,并将存储该数据类型的对象的动态数组

private List<T> src = new ArrayList<T>();

public <T> void setSRC(T var) {
    src.add(var);
}
import java.util.*;
类Test2
{
私有集合src=新向量();
公共无效设置RC(T var)
{
src.add(var);
}
公共静态void main(字符串[]args)
{
test2t=新的Test2();
t、 setSRC(5);
Test2 t2=新的Test2();
t、 setSRC(5.5);
}
}
问题是,如果这就是你所做的一切,就没有必要麻烦了。看起来您正在尝试编写自己的动态数组类,Java中有很多类可供选择。为什么要重新发明轮子


现在,如果您想做一些特定的事情,请告诉我们您想完成什么,我们可以提供更好的答案。

对于Java初学者来说,这种表示法非常混乱。下面是jqno的整型值示例:

import java.util.*;
class Test2<T>
{
    private Collection<T> src = new Vector<T>();

    public void setSRC(T var)
    {
        src.add( var );
    }

    public static void main( String[] args )
    {
        Test2 t = new Test2<Integer>();
        t.setSRC( 5 );
        Test2 t2 = new Test2<Double>();
        t.setSRC( 5.5 );
    }
}
private List src=new ArrayList();
公共void setSRC(整数变量){
src.add(var);
}
现在src是一个只能存储整数类型对象的ArrayList,这与您的问题非常接近。它不能存储int值(int类型不是对象),但Java 5/6会在必要时将int转换为整数(自动装箱),因此您可以使用(int)i调用setSRC


如果要使用数组并需要更改大小,请查看System.arraycopy(..)方法

对于Java初学者来说,这种表示法相当混乱。下面是jqno的整型值示例:

import java.util.*;
class Test2<T>
{
    private Collection<T> src = new Vector<T>();

    public void setSRC(T var)
    {
        src.add( var );
    }

    public static void main( String[] args )
    {
        Test2 t = new Test2<Integer>();
        t.setSRC( 5 );
        Test2 t2 = new Test2<Double>();
        t.setSRC( 5.5 );
    }
}
private List src=new ArrayList();
公共void setSRC(整数变量){
src.add(var);
}
现在src是一个只能存储整数类型对象的ArrayList,这与您的问题非常接近。它不能存储int值(int类型不是对象),但Java 5/6会在必要时将int转换为整数(自动装箱),因此您可以使用(int)i调用setSRC


如果要使用数组并需要更改大小,请查看System.arraycopy(..)方法

我假设src是int[]类型?所以这个函数将接受一个int作为输入,如果src还没有设置,将创建一个包含输入的大小为1的int[]。如果已经设置了src,它会将输入附加到src数组的末尾。由于您使用的是primatives,因此必须手动增长数组并复制数据。是否确实要使数组在每次添加元素时都增长?随着时间的推移,这可能会变得非常昂贵。我建议改为使用通用ArrayList。它将自行增长,并可能实现您期望的功能。请清理您的代码或编写您的函数应该执行的操作?看起来像一个mass,实际上我想在Java中有一个动态数组。如果我不使用上面的代码,我如何获得它?我是java新手。@Kam:正如statenjason所说,您应该使用ArrayList,它在java中精确地实现了动态数组。如果您真的想自己实现它,那么当数组满时,您会将分配的数组大小增加一倍,并且需要添加更多。(您还需要在一个单独的变量中跟踪当前的大小。)这样做的方式非常低效——每次添加内容时,它都必须复制整个数组,使添加元素成为O(n)。然而,如果你在它满的时候把大小增加一倍(或者增加固定的百分比),那么加法就变成了摊销O(1)?所以这个函数将接受一个int作为输入,如果src还没有设置,将创建一个包含输入的大小为1的int[]。如果已经设置了src,它会将输入附加到src数组的末尾。由于您使用的是primatives,因此必须手动增长数组并复制数据。是否确实要使数组在每次添加元素时都增长?那可能会让你生气