Java string[] частичное копирование

как сделать String[], и сделайте копию этого String[], но без первой строки? Пример: если у меня есть это...

String[] colors = {"Red", "Orange", "Yellow"};

как бы я сделал новую строку, которая похожа на цвета коллекции строк, но без красного в ней?

3 ответов


можно использовать Arrays.copyOfRange:

String[] newArray = Arrays.copyOfRange(colors, 1, colors.length);

забудьте о массивах. Это не концепция для начинающих. Вместо этого ваше время лучше инвестировать в изучение API коллекций.

/* Populate your collection. */
Set<String> colors = new LinkedHashSet<>();
colors.add("Red");
colors.add("Orange");
colors.add("Yellow");
...
/* Later, create a copy and modify it. */
Set<String> noRed = new TreeSet<>(colors);
noRed.remove("Red");
/* Alternatively, remove the first element that was inserted. */
List<String> shorter = new ArrayList<>(colors);
shorter.remove(0);

для взаимодействия с устаревшими API на основе массива существует удобный метод в Collections:

List<String> colors = new ArrayList<>();
String[] tmp = colorList.split(", ");
Collections.addAll(colors, tmp);

String[] colors = {"Red", "Orange", "Yellow"};
String[] copy = new String[colors.length - 1];
System.arraycopy(colors, 1, copy, 0, colors.length - 1);