![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Devorior |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 559 Регистрация: 1.8.2002 Где: Обнинск Репутация: 1 Всего: 3 |
подскажите как методами Java отсортировать вектор String-значений? Непонятно как юзать класс Comparable и вообще надо его юзать?
|
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Использовать статический метод
Collections.sort(List list) Vector еализует интерфейс List, посему здесь надо его просто передать в метод. А т.к. String уже реализует Comparable (т.е. они умеют сравниваться), то больше ничего и не надо. Вообщем, вот пример import java.util.Vector; import java.util.Collections; public class MyCl { public static void main(String[] args) { MyCl mc = new MyCl(); mc.ShowList(); } public void ShowList() { Vector v = new Vector(); v.add("Jonson"); v.add("Buch"); v.add("Codd"); v.add("Caliostro"); System.out.println("Before sort"); System.out.println("***********"); for(int i=0; i<v.size(); i++) { System.out.println((String)v.elementAt(i)); } Collections.sort(v); System.out.println(); System.out.println("After sort"); System.out.println("***********"); for(int i=0; i<v.size(); i++) { System.out.println((String)v.elementAt(i)); } } } А по поводу Comparable - идея в том, что ты для своего типа данных, который укладываешь в Vector, должен сделать реализацию интерфейса Comparable. Если хочешь использовать отдельный сравниватель - делаешь класс, который реализует Comparator. Там всего по одному методу. Эти методы определяют, как сравнивать объекты твоего класса. |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Вот тебе примерчик Comparator. Здесь строки сравниваются только по длине, потому и выводятся согласно длине, а не алфавиту
import java.util.Vector; import java.util.Collections; import java.util.Comparator; public class MyCl { public static void main(String[] args) { MyCl mc = new MyCl(); mc.ShowList(); } public void ShowList() { Vector v = new Vector(); v.add("Jonson"); v.add("Buch"); v.add("Has"); v.add("Caliostro"); System.out.println("Before sort"); System.out.println("***********"); for(int i=0; i<v.size(); i++) { System.out.println((String)v.elementAt(i)); } Collections.sort(v, new MyComparator()); System.out.println(); System.out.println("After sort"); System.out.println("***********"); for(int i=0; i<v.size(); i++) { System.out.println((String)v.elementAt(i)); } } } class MyComparator implements Comparator { public int compare(Object obj1, Object obj2) { String a = (String) obj1; String b = (String) obj2; if(a.length()<b.length()) return -1; if(a.length()==b.length()) return 0; return 1; } } |
|||
|
||||
| Devorior |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 559 Регистрация: 1.8.2002 Где: Обнинск Репутация: 1 Всего: 3 |
Anton, большое спасибо
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |