2013-10-04 2 views
-1

Фактическая программа немного отличается и более сложной, но сделать это просто:Перемещение конкретных элементов массива до конца - Java

Скажем, у меня есть массив, состоящий из строк. Строками могут быть имена животных или имена птиц. Строки перепутаны и нет конкретного порядка.

Мне нужно убедиться, что имена животных отображаются первыми, а имена птиц - вторыми. Нет необходимости в алфавитном порядке.

Предположим, что у меня уже есть список имен птиц, которые необходимо перенести в конец.

Может ли кто-нибудь помочь мне с быстрым и эффективным способом достичь этого на Java?

BEFORE: 
Cat 
Crow 
Dog 
Cow 
Parrot 

AFTER: 
Cat 
Dog 
Cow 
Crow 
Parrot 

Существующий код-то вроде этого:

mixedArray 

for (each element in the mixedArray){ 
    //do some processing 
    .. 
    out.write(mixedArray[x]); 
} 
+1

Как вы дифференцируя животное и названия птиц. Мы, как люди, можем различать их, но как компьютер знал бы? – aa8y

+0

Итак, как вы знаете, является ли строка птицей или нет, у вас есть массив со всеми именами птиц или что-то в нем? Или это всегда просто попугай и ворона? – spydon

+2

@Expressions_Galore OP say «Предположим, что у меня уже есть список имен птиц» –

ответ

1

Это может работать

int begin = 0; 
int end = mixedArray.length - 1; 
String[] sortedArray = new String[mixedArray.length]; 

for (String mixed : mixedArray) { 
    for (String bird : birdArray) { 
     if (mixed.equals(bird)) { 
      sortedArray[end--] = mixed; 
     } else { 
      sortedArray[begin++] = mixed; 
     } 
    } 
} 

Здесь sortedArray где мы будем хранить отсортированный результат, begin является начальным индексом отсортированный массив и конец - последний индекс. birdArray - это массив, содержащий список имен птиц. Я не тестировал этот код, но это должно сработать.

0

Я думаю, что есть 2 способа сделать это.

  1. же, как комментарий Кошик Sivakumar в
  2. , если вы не хотите иметь дело с копирования/перемещения массивов, используйте 2 для циклов с условием, если.

для (каждый элемент) {Проверяем, если не птица затем распечатать}

для (каждого элемента) {Проверяем, если птица затем распечатать}

Смежные вопросы