Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> jdk7 
:(
    Опции темы
Tony
Дата 15.9.2007, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: нет
Всего: 12





--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
Vasay
Дата 15.9.2007, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 11
Всего: 73



Вселенная постоянно меняется...

PDF с сайта SUN


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
Mayk
Дата 15.9.2007, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: нет
Всего: 134



Код

void sortBySalary(Collection<Employee> employees) {
    Collections.sort(employees,
          #(Employee e1, Employee e2) {
            return e1.getSalary().compareTo(e2.getSalary());
          }
    );

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

Код

import java.util.*;
m4_define( m4_comparator,
    new java.util.Comparator<$1>(){
        public int compare($1 lhs, $1 rhs){
            $2
        }
    }
)

public class macro
{
    static Random random = new Random();
    static class Pair
    {
        int a, b;
        Pair(){
            a = random.nextInt(3);
            b = random.nextInt(2);
        }

        public String toString(){ return "<"+a+","+b+">"; }
    };

    public static void main(String[] args){

        Pair[] pairs = new Pair[10];
        for( int i = 0; i < pairs.length; ++i )
            pairs[i] = new Pair();

        // сортируем по a, а если они одинаковы то по b
        Arrays.sort( pairs, m4_comparator(Pair,
            if( lhs.a != rhs.a )
                return lhs.a - rhs.a;
            return lhs.b - rhs.b;
        ) );
        System.out.println( Arrays.asList(pairs) );

        // сортируем по b в обратном порядке.
        Arrays.sort( pairs, m4_comparator(Pair, return rhs.b - lhs.b;) );
        System.out.println( Arrays.asList(pairs) );
    }
}

Цитата

23:20:dvl:~/src/pol$ m4 -P <macro.java.m4 >macro.java
23:20:dvl:~/src/pol$ javac -encoding utf8 macro.java
23:20:dvl:~/src/pol$ java macro
[<0,0>, <0,0>, <0,0>, <1,0>, <1,0>, <1,1>, <1,1>, <2,0>, <2,0>, <2,1>]
[<1,1>, <1,1>, <2,1>, <0,0>, <0,0>, <0,0>, <1,0>, <1,0>, <2,0>, <2,0>]





--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0756 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.