Java 如何重新排列数组,使空值占据数组的开头?
我不知道如何将null元素添加到数组的前面 有没有办法在不反转阵列的情况下执行此操作?也许是一种具体的方法Java 如何重新排列数组,使空值占据数组的开头?,java,arrays,string,Java,Arrays,String,我不知道如何将null元素添加到数组的前面 有没有办法在不反转阵列的情况下执行此操作?也许是一种具体的方法 public static void main(String[] args) { String[] stringArray = new String[]{"one", "two", "three"}; method(stringArray); } public static String[] method(String[] stringArray) { Strin
public static void main(String[] args) {
String[] stringArray = new String[]{"one", "two", "three"};
method(stringArray);
}
public static String[] method(String[] stringArray) {
String[] biggerStringArray = Arrays.copyOf(stringArray, stringArray.length * 2);
for (int i = 0; i < biggerStringArray.length; i++) {
System.out.print(biggerStringArray[i] + ", ");
}
return biggerStringArray;
}
publicstaticvoidmain(字符串[]args){
String[]stringArray=新字符串[]{“一”、“二”、“三”};
方法(字符串数组);
}
公共静态字符串[]方法(字符串[]字符串数组){
String[]biggerStringArray=Arrays.copyOf(stringArray,stringArray.length*2);
for(int i=0;i
我希望结果如下所示:
零,零,零,一,二,三
而不是:
一,二,三,零,零,零
据我所知,一个单一的声明,你所寻找的并不存在。但这并不意味着你不能自己做。有很多方法可以交换数组中的元素。这里有一个:
String[] biggerStringArray = Arrays.copyOf(stringArray, stringArray.length * 2);
for(int i = 0; i < stringArray.length; i++)
{
biggerStringArray[i] = biggerStringArray[i + stringArray.length];
biggerStringArray[i + stringArray.length] = null;
}
String[]biggerStringArray=Arrays.copyOf(stringArray,stringArray.length*2);
对于(int i=0;i
您可以编写自己的copy
方法,如下所示
public static String[] copyArray(String[] array, int length) {
String[] biggerStringArray = new String[length];
for (int i = 1; i <= array.length; i++) {
biggerStringArray[biggerStringArray.length - i] = array[array.length - i];
}
return biggerStringArray;
}
公共静态字符串[]copyArray(字符串[]数组,整数长度){
String[]biggerStringArray=新字符串[长度];
对于(int i=1;i您可以首先创建一个长度等于stringArray
的空数组。然后您可以使用任何Java数组连接方法将stringArray
连接到新的空数组
这里有一个例子
public static String[] method(String[] stringArray) {
String[] nullArray = new String[stringArray.length];
String[] biggerStringArray = Stream.of(nullArray, stringArray).flatMap(Stream::of).toArray(String[]::new);
// for (int i = 0; i < biggerStringArray.length; i++) {
// System.out.print(biggerStringArray[i] + ", ");
// }
return biggerStringArray;
}
公共静态字符串[]方法(字符串[]字符串数组){
String[]nullArray=新字符串[stringArray.length];
String[]biggerStringArray=Stream.of(nullArray,stringArray).flatMap(Stream::of).toArray(String[]::new);
//for(int i=0;i
公共静态void main(字符串[]args){
String[]stringArray=新字符串[]{“一”、“二”、“三”};
方法(字符串数组);
}
公共静态字符串[]方法(字符串[]字符串数组){
String[]biggerStringArray=新字符串[stringArray.length*2];
对于(int i=0;i
编辑:刚刚记住,您还可以使用:
公共静态字符串[]方法(字符串[]字符串数组){
String[]biggerStringArray=新字符串[stringArray.length*2];
System.arraycopy(stringArray,0,biggerStringArray,biggerStringArray.length/2,stringArray.length);
for(int i=0;i
公共静态字符串[]方法(字符串[]字符串数组){
String[]biggerStringArray=Arrays.copyOf(stringArray,stringArray.length*2);
List biggerStringList=Arrays.asList(biggerStringArray);
sort(Comparator.nullsFirst(String::compareTo));
System.out.println(biggerStringList);
返回biggerStringList.toArray(新字符串[biggerStringList.size()]);
}
public static void main(String[] args) {
String[] stringArray = new String[] {"one", "two", "three"};
method(stringArray);
}
public static String[] method(String[] stringArray) {
String[] biggerStringArray = new String[stringArray.length * 2];
for (int i = 0; i < stringArray.length; i++) {
biggerStringArray[i + biggerStringArray.length / 2] = stringArray[i];
}
for (int i = 0; i < biggerStringArray.length; i++) {
System.out.print(biggerStringArray[i] + ", ");
}
return biggerStringArray;
}
public static String[] method(String[] stringArray) {
String[] biggerStringArray = new String[stringArray.length * 2];
System.arraycopy(stringArray, 0, biggerStringArray, biggerStringArray.length / 2, stringArray.length);
for (int i = 0; i < biggerStringArray.length; i++) {
System.out.print(biggerStringArray[i] + ", ");
}
return biggerStringArray;
}
public static String[] method(String[]stringArray) {
String[] biggerStringArray = Arrays.copyOf(stringArray, stringArray.length * 2);
List<String> biggerStringList = Arrays.asList(biggerStringArray);
biggerStringList.sort(Comparator.nullsFirst(String::compareTo));
System.out.println(biggerStringList);
return biggerStringList.toArray(new String[biggerStringList.size()]);
}