Java 下面代码中的列表迭代列表——哪种方法更好?

Java 下面代码中的列表迭代列表——哪种方法更好?,java,collections,arraylist,Java,Collections,Arraylist,我正在迭代一个列表列表。在我的代码listofuserdetailsperAccount是List。我正在考虑下面的两种方法,请让我知道哪种方法是正确的,更有效的,并且应该在java编码中遵循 方式1----- for(int i=0;i方式1比方式2更好。在方式2List List=new ArrayList();中,它将创建一个没有任何用途的额外ArrayList对象,这将导致内存消耗一段时间 此外,还建议使用特定于类型的列表,这样您就不会在运行时强制转换,这将是类型安全的 for(List

我正在迭代一个列表列表。在我的代码
listofuserdetailsperAccount
List
。我正在考虑下面的两种方法,请让我知道哪种方法是正确的,更有效的,并且应该在java编码中遵循

方式1-----


for(int i=0;i方式1方式2更好。在方式2
List List=new ArrayList();
中,它将创建一个没有任何用途的额外
ArrayList
对象,这将导致内存消耗一段时间

此外,还建议使用特定于类型的
列表
,这样您就不会在运行时强制转换,这将是类型安全的

for(List<E> list : listOfUserDetailsPerAccount){
   ...
}
for(列表:listOfUserDetailsPerAccount){
...
}

在Java 5和更高版本中,请分别使用。

方式1方式2更好。在方式2
列表=新建ArrayList();中,它将创建一个没有任何用途的额外
ArrayList
对象,这将导致内存消耗一段时间

此外,还建议使用特定于类型的
列表
,这样您就不会在运行时强制转换,这将是类型安全的

for(List<E> list : listOfUserDetailsPerAccount){
   ...
}
for(列表:listOfUserDetailsPerAccount){
...
}

在Java 5和更高版本中,请分别使用。

方式1方式2更好。在方式2列表=新建ArrayList();中,它将创建一个没有任何用途的额外
ArrayList
对象,这将导致内存消耗一段时间

此外,还建议使用特定于类型的
列表
,这样您就不会在运行时强制转换,这将是类型安全的

for(List<E> list : listOfUserDetailsPerAccount){
   ...
}
for(列表:listOfUserDetailsPerAccount){
...
}

在Java 5和更高版本中,请分别使用。

方式1方式2更好。在方式2列表=新建ArrayList();中,它将创建一个没有任何用途的额外
ArrayList
对象,这将导致内存消耗一段时间

此外,还建议使用特定于类型的
列表
,这样您就不会在运行时强制转换,这将是类型安全的

for(List<E> list : listOfUserDetailsPerAccount){
   ...
}
for(列表:listOfUserDetailsPerAccount){
...
}

在Java 5及以上版本中,每个循环都使用。

我将使用每个循环

for( List userDetailsPerAccount : listOfUserDetailsPerAccount ) {
    //anything you want to do with userDetailsPerAccount

}

每个循环我都会使用

for( List userDetailsPerAccount : listOfUserDetailsPerAccount ) {
    //anything you want to do with userDetailsPerAccount

}

每个循环我都会使用

for( List userDetailsPerAccount : listOfUserDetailsPerAccount ) {
    //anything you want to do with userDetailsPerAccount

}

每个循环我都会使用

for( List userDetailsPerAccount : listOfUserDetailsPerAccount ) {
    //anything you want to do with userDetailsPerAccount

}

这两种解决方案都存在一些问题

  • 您的
    List-listofuserdetailsperAccount对象没有正确键入,因为内部的
    List
    是一个需要避免的对象。假设您的内部列表包含
    UserDetail
    对象,则列表的类型应为
    List
  • 您不需要使用该语法来迭代
    列表
    ,它是


    你评论(整理):

    因此,在初始化时,我现在正在做类似的事情,您能告诉我这是否正确吗:

    List<List<String>> listofAccountdetailsLoggedinUser = null;
    listofAccountdetailsLoggedinUser = new ArrayList<List<String>>(); 
    
  • 这是正确的方法,但您不需要将变量初始化为
    null
    。这不会造成任何影响,因为它不会构造不必要的对象,但没有理由-您可以在一行中声明并初始化变量,就像您在第二个示例中所做的那样
  • 此外,您不需要在右侧指定ArrayList的类型,只需使用
    ,如下所示:

    List<List<String>> listofAccountdetailsLoggedinUser = new ArrayList<>();
    
    List-listofacountdetailslogedinuser=new-ArrayList();
    
  • 同样,考虑一个更短的变量名,不需要使用这么长的变量,类型没有乐趣:
    这两种解决方案都存在一些问题

  • 您的
    List-listofureDetailsPeraccount
    对象没有正确键入,因为内部的
    List
    是一个需要避免的对象。假设您的内部列表包含
    UserDetail
    对象,则列表的类型应为
    list
  • 您不需要使用该语法来迭代
    列表
    ,它是


    你评论(整理):

    因此,在初始化时,我现在正在做类似的事情,您能告诉我这是否正确吗:

    List<List<String>> listofAccountdetailsLoggedinUser = null;
    listofAccountdetailsLoggedinUser = new ArrayList<List<String>>(); 
    
  • 这是正确的轨迹,但不需要将变量初始化为
    null
    。它不会伤害任何东西,因为它不会构造不必要的对象,但是没有理由-您可以在一行中声明和初始化变量,就像您在第二个示例中所做的那样
  • 此外,您不需要在右侧指定ArrayList的类型,只需使用
    ,如下所示:

    List<List<String>> listofAccountdetailsLoggedinUser = new ArrayList<>();
    
    List-listofacountdetailslogedinuser=new-ArrayList();
    
  • 同样,考虑一个更短的变量名,不需要使用这么长的变量,类型没有乐趣:
    这两种解决方案都存在一些问题

  • 您的
    List-listofureDetailsPeraccount
    对象没有正确键入,因为内部的
    List
    是一个需要避免的对象。假设您的内部列表包含
    UserDetail
    对象,则列表的类型应为
    list
  • 您不需要使用该语法来迭代
    列表
    ,它是


    你评论(整理):

    因此,在初始化时,我现在正在做类似的事情,您能告诉我这是否正确吗:

    List<List<String>> listofAccountdetailsLoggedinUser = null;
    listofAccountdetailsLoggedinUser = new ArrayList<List<String>>(); 
    
  • 这是正确的轨迹,但不需要将变量初始化为
    null
    。它不会伤害任何东西,因为它不会构造不必要的对象,但是没有理由-您可以在一行中声明和初始化变量,就像您在第二个示例中所做的那样
  • 此外,您不需要在右侧指定ArrayList的类型,只需使用
    ,如下所示:

    List<List<String>> listofAccountdetailsLoggedinUser = new ArrayList<>();
    
    <代码