Лучшим подходом будет использование карты, где ключ будет элементом, а значением будет отсчет каждого элемента. Наряду с этим сохраняем массив размеров, который будет содержать индекс самого популярного элемента. Заполняем этот массив при самой конструкции карты, чтобы нам снова не пришлось перебирать карту.
Подход 2: -
Если кто-то хочет пойти с двумя циклами, вот импровизация из принятого ответа, когда нам не нужно начинать второй цикл с каждого раза
public class TestPopularElements {
public static int getPopularElement(int[] a) {
int count = 1, tempCount;
int popular = a[0];
int temp = 0;
for (int i = 0; i < (a.length - 1); i++) {
temp = a[i];
tempCount = 0;
for (int j = i+1; j < a.length; j++) {
if (temp == a[j])
tempCount++;
}
if (tempCount > count) {
popular = temp;
count = tempCount;
}
}
return popular;
}
public static void main(String[] args) {
int a[] = new int[] {1,2,3,4,5,6,2,7,7,7};
System.out.println("count is " +getPopularElement(a));
}
}
Пользовательский интерфейс
Рассмотрение Пользовательских Инструкций по Опыту Windows Vista, Вы видите, что они изменили много элементов UI, о которых необходимо знать. Некоторые главные вещи принять во внимание:
64-разрядный
Vista имеет 64-разрядный выпуск, и хотя XP сделал также, Ваши пользователи, более вероятно, будут использовать Vista 64, чем XP 64. Теперь необходимо иметь дело с:
КОНТРОЛЬ УЧЁТНЫХ ЗАПИСЕЙ
Управление учетными записями пользователей значительно влияет на полномочия по умолчанию, которые Ваше приложение имеет при взаимодействии с ОС.
Новые API
Существуют новые API, которые предназначены или для новых методов конструкции приложения или для разрешения новой функциональности:
Установщики
Поскольку установки могут только использовать общее время выполнения, которое они устанавливают после того, как транзакция завершилась, пользовательские действия перестанет работать, если Ваше пользовательское действие dll требует времени выполнения Visual C++ выше VS 20:05 CRT (non-SP1).
Безусловно самая болезненная часть перемещения приложения от XP до Vista (с моей точки зрения) имеет дело с многочисленными сервисами и материалом IPv6, который использует порты, которые были ранее свободны, и контакт с Беспроводной Настройкой-> Собственный компонент переход WiFi.
Материал контроля учётных записей является в основном спорным вопросом; существует очень мало разработчик приложений, должен сделать.
Может быть, но это - сознательный выбор, который Вы делаете как разработчик. Можно использовать новый материал Vista, как контроль учётных записей и CommandLinks и Аэро и т.д. Но Вы не имеете к (даже контроль учётных записей может быть запрограммирован вокруг - просто не делают ничего, чему нужны административные привилегии). Если Вы принимаете решение проигнорировать весь материал Vista, то нет абсолютно никакого различия между двумя.
Если Вы действительно хотите включать тот материал в свое приложение, это имеет значение. Но я сказал бы не огромный. И если Вы абстрагируете далеко различия (например, запишите свою собственную функцию, которая показывает TaskDialog для Vista, но какой dumbs вниз вход Вы даете ей в MesssageBox на XP), то затем Вы будете только писать против своего собственного кода, и различия почти на ничто не будут походить.
Кроме того, много нового материала Vista (например, контроль учётных записей или Аэро) является материалом, о котором Вы волнуетесь однажды при создании первой части функциональности, которая использует его, получите его работа и затем никогда не думайте о снова при разработке приложения.
Никогда не предполагайте, что у Вашего пользователя есть доступ к определенным ключевым областям диска (т.е. программные файлы, каталог окон и т.д.). Вместо этого учетная запись пользователя по умолчанию только сможет записать в маленький раздел их данных приложения. Кроме того, они не смогут записать в глобальные области реестра - только текущий пользовательский раздел.
Можно, конечно, поднять их полномочия, но это сам по себе - задача.
Обычно программирование для Vista совпадает с XP, это - просто новые ограничения учетной записи, которых необходимо опасаться.
Взгляните на эту страницу относительно создания Вашего приложения "знающий контроль учётных записей"
http://www.codeproject.com/KB/vista-security/MakingAppsUACAware.aspx