有两种方法可以做到这一点。一种使用对象
或另一种使用泛型
。我建议您使用generics
,因为它给您提供了更多的灵活性,正如您将在这些示例中看到的那样。
在第一个实现中,函数Add2BeginningOfArray
使用泛型
:
public static <T> T[] add2BeginningOfArray(T[] elements, T element)
{
T[] newArray = Arrays.copyOf(elements, elements.length + 1);
newArray[0] = element;
System.arraycopy(elements, 0, newArray, 1, elements.length);
return newArray;
}
调用这个函数真的很简单。例如,如果您有一个dot
类,并且您想在dot
对象数组的开头添加一个元素,您只需要这样做:
int size = 20;
Dot[] dots = new Dot[size];
for (int i = 0; i < size; i++) {
dots[i] = new Dot("This is a dot");
}
Dot goal = new Dot("This is a goal");
System.out.println(Arrays.toString(add2BeginningOfArray(dots, goal)));
public static Object[] add2BeginningOfArray(Object[] elements, Object element){
Object[] tempArr = new Object[elements.length + 1];
tempArr[0] = element;
System.arraycopy(elements, 0, tempArr, 1, elements.length);
}
Object[] foo = {"2", "3", "4"};
//adding an element to the beginning array
Object[] numbers = add2BeginningOfArray(foo, "1");
System.out.println(Arrays.toString(numbers));
对我来说,generics
方法更干净,伸缩性更强,所以我非常推荐它,而不是object
方法。
我需要最简单的方法将项目添加到Java数组的前面。 我需要Java数组而不是ArrayList。
问题内容: 我需要 最简单的 方法将项目添加到Java数组的前面。 我需要Java数组而不是ArrayList。 问题答案:
问题内容: 在Java中,数组不会覆盖toString(),因此,如果您尝试直接打印一个数组,则得到数组的十六进制,如下所示: 但是通常情况下,我们实际上会想要更多类似的东西。最简单的方法是什么?以下是一些示例输入和输出: 问题答案: 从Java 5开始,您可以;然后将或用于数组中的数组。请注意,版本调用数组中的每个对象。输出甚至以您要求的确切方式修饰。 例子: 简单数组: 输出: 嵌套数组: 输
问题内容: 例如: 还是在Python中有一个内置函数可以做到这一点? 问题答案: 没有人迄今已提到的新这是在2.7版所添加的选项 格式化规范的迷你语言 -见PEP 378:格式说明千位分隔符 在什么在Python 2.7文档的新 。它易于使用,因为您不必弄乱(但由于国际化而受到限制,请参阅原始的PEP 378 )。它适用于浮点数,整数和小数- 以及迷你语言规范中提供的所有其他格式设置功能。 用法
问题内容: 将字符串前缀添加到数组键的最快方法是什么? 输入项 所需的输出: 问题答案: 我发现PHPBench对于非简单的基准测试不是一个很好的来源。因此,除非您真正对运行感兴趣,否则不会正确显示哪种语法会更快。我汇总了一个简单的基准,以表明当您在迭代过程中同时使用键和值时,foreach实际上是最快的。 实际迫使PHP从循环迭代中读取值非常重要,否则它将尽最大努力优化它们。在下面的示例中,我使
问题内容: 我有一个状态数组,比方说this.state.arr。我想向此状态属性添加一些内容,然后更改更多属性。 选项1 选项2 所以..我知道this.state应该被视为不可变的。但是可以像在选项1中那样使用它还是可以通过它设置状态,还是可以像在选项2中那样使用它,这样总是总是首先在内存中进行复制 问题答案: 使用concat的另一种简单方法: