Как добавить новые элементы в массив? - PullRequest
258 голосов
/ 16 мая 2010

У меня есть следующий код:

String[] where;
where.append(ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1");
where.append(ContactsContract.Contacts.IN_VISIBLE_GROUP + "=1");

Эти два приложения не компилируются. Как это будет работать правильно?

Ответы [ 17 ]

4 голосов
/ 10 сентября 2017

Я сделал этот код! Это работает как шарм!

public String[] AddToStringArray(String[] oldArray, String newString)
{
    String[] newArray = Arrays.copyOf(oldArray, oldArray.length+1);
    newArray[oldArray.length] = newString;
    return newArray;
}

Надеюсь, тебе понравится !!

4 голосов
/ 11 декабря 2015

Добавление новых элементов в массив String.

String[] myArray = new String[] {"x", "y"};

// Convert array to list
List<String> listFromArray = Arrays.asList(myArray);

// Create new list, because, List to Array always returns a fixed-size list backed by the specified array.
List<String> tempList = new ArrayList<String>(listFromArray);
tempList.add("z");

//Convert list back to array
String[] tempArray = new String[tempList.size()];
myArray = tempList.toArray(tempArray);
3 голосов
/ 16 мая 2010

Я не настолько опытен в Java, но мне всегда говорили, что массивы - это статические структуры, которые имеют заранее определенный размер. Вы должны использовать ArrayList или Vector или любую другую динамическую структуру.

2 голосов
/ 13 ноября 2017

Если вы действительно хотите изменить размер массива, вы можете сделать что-то вроде этого:

String[] arr = {"a", "b", "c"};
System.out.println(Arrays.toString(arr)); 
// Output is: [a, b, c]

arr = Arrays.copyOf(arr, 10); // new size will be 10 elements
arr[3] = "d";
arr[4] = "e";
arr[5] = "f";

System.out.println(Arrays.toString(arr));
// Output is: [a, b, c, d, e, f, null, null, null, null]
2 голосов
/ 02 февраля 2017

Вы можете просто сделать это:

System.arraycopy(initialArray, 0, newArray, 0, initialArray.length);
2 голосов
/ 03 февраля 2014

вы можете создать массив списков и использовать Collection.addAll() для преобразования массива строк в ваш массив списков

1 голос
/ 25 сентября 2014

Размер массива не может быть изменен. Если вам нужно использовать массив, вы можете использовать System.arraycopy (src, srcpos, dest, destpos, length);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...