Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何返回arraylist?_Java_Arraylist - Fatal编程技术网

Java 如何返回arraylist?

Java 如何返回arraylist?,java,arraylist,Java,Arraylist,我想从java中的非类方法返回arraylist,我已经搜索过了,但到目前为止没有找到任何东西 { int d=e.length(); ArrayList list2 = new ArrayList(); for (int i=0;i<d;i++) { list2.add('_'); } return list2; } { int d=e.长度(); ArrayList list2=新的ArrayList();

我想从java中的非类方法返回arraylist,我已经搜索过了,但到目前为止没有找到任何东西

{
     int d=e.length();
     ArrayList list2 = new ArrayList();
     for (int i=0;i<d;i++)
     {
         list2.add('_');
     }
     return list2;
}
{
int d=e.长度();
ArrayList list2=新的ArrayList();

对于(int i=0;i)所有的方法必须是静态的或实例方法;由类或它的一个实例所拥有。它不像C或C++那样可以在类外的函数。

但是,您可以执行静态导入

public class UtilClass {
    public static ArrayList getList() { ... return someList; }
}

import static UtilClass.getList;
这或多或少会让您这样对待它。但是,它必须被定义为类的一部分,并且是静态的


<强>编辑:我忘了在示例中让GETSIST静态化。

> P>所有的方法必须是静态的或实例方法;由类或它的一个实例拥有。它不像C或C++那样可以在类外的函数。

但是,您可以执行静态导入

public class UtilClass {
    public static ArrayList getList() { ... return someList; }
}

import static UtilClass.getList;
这或多或少会让您这样对待它。但是,它必须被定义为类的一部分,并且是静态的


编辑:我忘了在示例中使getList为静态。

您需要做的就是将返回类型放入签名中,然后返回列表

public class Example {
    // a static method
    public static List someStaticMethod(){
       // create and return a List
    }

    // this method is not static
    public List someMethod(){
       // create and return a List
    }

}
请注意,由于
ArrayList
扩展了
List
,因此可以将返回类型设置为其中一种

List
更通用,您可以返回任何类型的列表。这很有用,因为如果您想更改所使用的内部列表(例如从
ArrayList
更改为
LinkedList
),您不必在使用该方法的任何地方更改API


但是,如果您使用的列表实现有自己的方法,而这些方法不是由
list
接口定义的,那么当您从方法中获取列表时,您将无法访问这些方法,除非您强制转换(ewe)或者指定确切的返回类型。

您只需将返回类型放入签名中,然后返回列表

public class Example {
    // a static method
    public static List someStaticMethod(){
       // create and return a List
    }

    // this method is not static
    public List someMethod(){
       // create and return a List
    }

}
请注意,由于
ArrayList
扩展了
List
,因此可以将返回类型设置为其中一种

List
更通用,您可以返回任何类型的列表。这很有用,因为如果您想更改所使用的内部列表(例如从
ArrayList
更改为
LinkedList
),您不必在使用该方法的任何地方更改API


但是,如果您使用的列表实现有自己的方法,而这些方法不是由
list
接口定义的,那么当您从方法中获取列表时,您将无法访问这些方法,除非您强制转换(ewe)或者指定确切的返回类型。

您的代码看起来像a-也许您应该试试它。

您的代码看起来像a-也许您应该试试它。

您的方法定义应该是这样的

public ArrayList<Character> getCharList(String e)
{    
    int d = e.length();
    // as of Java 1.5, generic collections are available
    ArrayList<Character> list2 = new ArrayList<Character>();
    for (int i=0;i<d;i++) {
        list2.add(new Character('_'));
    }
    return list2;
}
public ArrayList getCharList(字符串e)
{    
int d=e.长度();
//从Java1.5开始,可以使用泛型集合
ArrayList list2=新的ArrayList();

对于(inti=0;i您的方法定义应该是这样的

public ArrayList<Character> getCharList(String e)
{    
    int d = e.length();
    // as of Java 1.5, generic collections are available
    ArrayList<Character> list2 = new ArrayList<Character>();
    for (int i=0;i<d;i++) {
        list2.add(new Character('_'));
    }
    return list2;
}
public ArrayList getCharList(字符串e)
{    
int d=e.长度();
//从Java1.5开始,可以使用泛型集合
ArrayList list2=新的ArrayList();

对于(int i=0;i任何非
void
的方法都可以返回任何类型的数据,但是,您只能返回该方法允许的类型。例如,以
public int
开头的方法只能返回
int
值。要返回ArrayList,您的方法必须在声明中包含
ArrayList
,如下所示:

public ArrayList thisReturnsAnArrList(ArrayList list) {
    return list; //'list' is of the type 'ArrayList'
}

但是,您可以更宽松一些,让一个方法返回一个
列表
。因为多个类继承自
列表
(即
数组列表
链接列表
),您可以返回扩展
列表的任何值

任何非
无效的方法都可以返回任何类型的数据,但是,您只能返回该方法允许的类型。例如,以
公共int
开头的方法只能返回
int
值。要返回ArrayList,您的方法必须包含
Ar声明中的光线列表
,如下所示:

public ArrayList thisReturnsAnArrList(ArrayList list) {
    return list; //'list' is of the type 'ArrayList'
}

但是,您可以更宽松一些,让一个方法返回一个
列表
。因为多个类继承自
列表
(即
数组列表
链接列表
),您可以返回扩展
列表的任何值

看起来您已经在代码中返回了它。实际问题是什么?Java中的非类方法是什么?Java中的每个方法都属于类。非类方法?请澄清。您是指静态方法吗?该方法的签名在哪里?这没有意义,请post所有代码。这是一个初始值设定项块吗?看起来你已经在代码中返回了它。实际问题是什么?Java中的非类方法是什么?Java中的每个方法都属于类。非类方法?请澄清。你是指静态方法吗?方法的签名在哪里?没有意义,请发布所有代码。这是一个初始值设定项块吗?因此可能需要将getList()方法声明为静态才能工作?因此可能需要将getList()声明为静态方法需要声明为静态才能工作?抱歉,这里有错误。我指的是非主类。抱歉,这里有错误。我指的是非主类。我还没有机会测试它,但我相信它正在工作。仅供参考,我的问题中有一些错误,我很惊讶我仍然能够得到正确的答案。非常感谢!我还没有得到正确的答案还有机会测试这个,但我相信它是有效的。仅供参考,我的问题中有一些错误,我很惊讶我仍然能够得到正确的答案。非常感谢!