Java应该将数组视为对象吗?

我经常认为允许使用数组作为适当的对象使用自己的方法而不是依赖于Arrays,Arrays和ArrayUtils等辅助类是个好主意.

例如:

ints.sort();                 // Arrays.sort(ints);
int[] onemore = ints.add(8); // int[] onemore = ArrayUtils.add(ints, 8);

我确信我不是第一个有这个想法的人,但是我很难找到其他人之前写过的.有人可以帮我提一些关于这个主题的参考资料吗?

这被认为是一个好主意还是坏主意,为什么?

这有多容易实现?

其他一些例子可能包括(但不要挂断它们,它们与问题本身无关):

int[] ints = {5,4,3,2,1};

// Arrays.sort (ints);
ints.sort();

// int pos = Arrays.asList(ints).indexOf (5);
// int pos = ArraysUtils.indexOf (ints, 5);
int pos = ints.indexOf (5);

// Arrays.reverse (ints);
ints.reverse();

Array<Integer> array = ints; // cast to super class.

// int length = Array.getLength (array);
int length = array.getLength();

// Object n = Array.get (array, 3);
Object n = array.get (3);

// Array.set (array, 3, 7);
array.set (3, 7);

Object obj = array;
// if (obj instanceof int[])
//     System.out.println(Array.toString((int[]) obj));
// else if (....)
System.out.println (obj);
由于一个很好的理由,数组不是Java中的类 – 它们很好地映射了人们对数组应该如何使用C风格语言的经验的理解.制作数组低级容器而不是对象的性能原因.因此,有时使用原始数组而不是Collection会有性能优势.

如果要使用对象,则应该只使用Collection(ArrayList是集合的示例).它可能很笨重,但Collections提供了您似乎想要的一种很好的方法访问.

翻译自:https://stackoverflow.com/questions/559779/should-java-treat-arrays-as-objects

转载注明原文:Java应该将数组视为对象吗?