我经常认为允许使用数组作为适当的对象及其自己的方法而不是依赖于 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 风格语言的经验对数组应如何工作的理解。将数组设置为低级容器而不是对象也有性能方面的原因。因此,有时使用原始数组而不是集合会带来性能优势。
如果你想使用对象,你应该只使用集合(ArrayList 是集合的一个例子)。它可能很笨重,但集合提供了您似乎想要的良好方法访问类型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)