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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 接口方法图形数组与util列表_Java_Arrays_List_Interface - Fatal编程技术网

Java 接口方法图形数组与util列表

Java 接口方法图形数组与util列表,java,arrays,list,interface,Java,Arrays,List,Interface,我正在编写一个接口及其实现。该接口有如下方法 doSomething(String[] strs, Integer[] ints, String msg); 我将参数声明为数组只是因为它将调用具有类似参数的外部接口。有些人建议剂量表应该是util列表而不是数组。但我找不到任何最佳实践来解释为什么util List更可取 Loc基本上列表是抽象类型,需要由其任何家族成员(如ArrayList等)重新实现。因此,在性能方面,使用数组和列表没有太大区别,两者都是相同的。只有在可维护性方面,我们选择列

我正在编写一个接口及其实现。该接口有如下方法

doSomething(String[] strs, Integer[] ints, String msg);
我将参数声明为数组只是因为它将调用具有类似参数的外部接口。有些人建议剂量表应该是util列表而不是数组。但我找不到任何最佳实践来解释为什么util List更可取


Loc

基本上列表是抽象类型,需要由其任何家族成员(如ArrayList等)重新实现。因此,在性能方面,使用数组和列表没有太大区别,两者都是相同的。只有在可维护性方面,我们选择列表接口,以后可以根据需要为任何列表接口家族实现。列表还提供了灵活的数组操作。

列表基本上是抽象类型,需要由其家族成员(如ArrayList等)重新实现。因此没有太大区别就性能而言,在中使用数组和列表时,两者是相同的。只有在可维护性方面,我们才选择列表接口,以后我们可以根据需求为任何列表接口系列实现它。列表还提供了灵活的阵列操作。

列表更易于使用,因为它们有更丰富的API和各种实现。因此,结果是它通常更加灵活和可维护

Josh Bloch的高效Java强调了选择列表的另一个原因:“不变性”。 泛型是在编译时检查的,因此类型化列表实际上会捕获比数组更多的错误:

// Fails at runtime!
Object[] objectArray = new Long[1];
objectArray[0] = "I don't fit in"; // Throws ArrayStoreException
// Won't compile!
List<Object> ol = new ArrayList<Long>(); // Incompatible types
ol.add("I don't fit in");
//运行时失败!
Object[]objectArray=new Long[1];
objectArray[0]=“我不适合”//抛出ArrayStoreException
//不会编译!
List ol=new ArrayList();//不兼容的类型
添加(“我不适合”);
因此,在某些情况下,使用列表而不是数组实际上更安全

事情远不止这些,但开始难以解释了。参见有效Java第5章相关章节的链接:


列表更容易使用,因为它们有更丰富的API和多种实现。因此,结果是它通常更加灵活和可维护

Josh Bloch的高效Java强调了选择列表的另一个原因:“不变性”。 泛型是在编译时检查的,因此类型化列表实际上会捕获比数组更多的错误:

// Fails at runtime!
Object[] objectArray = new Long[1];
objectArray[0] = "I don't fit in"; // Throws ArrayStoreException
// Won't compile!
List<Object> ol = new ArrayList<Long>(); // Incompatible types
ol.add("I don't fit in");
//运行时失败!
Object[]objectArray=new Long[1];
objectArray[0]=“我不适合”//抛出ArrayStoreException
//不会编译!
List ol=new ArrayList();//不兼容的类型
添加(“我不适合”);
因此,在某些情况下,使用列表而不是数组实际上更安全

事情远不止这些,但开始难以解释了。参见有效Java第5章相关章节的链接:


HTH

这属于可维护性。您会发现使用为您准备的方法非常方便。

这属于可维护性。您会发现使用为您准备的方法非常方便。

这是一个很好的讨论。这是一个很好的讨论。