hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.28. 16:55



Jelenlévő felhasználók

Jelenleg 212 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 211 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Google [Bot] az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 3 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Rendezés egy Multi-Dimenziós Listán
HozzászólásElküldve: 2017.10.03. 20:49 
Offline
Fórum Moderátor
Avatar

Csatlakozott: 2014.05.01. 13:18
Hozzászólások: 627
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 104 alkalommal
MEGOLDVA! A kivitelezés csak az oszlopok elnevezésének közreiktatásával sikerült.

Üdv!

Tudna valaki írni egy kivitelezési formát az alábbi lista C értéke alapján történő rendezésére?

A - B - C
1 - 100 - 20
2 - 300 - 10
3 - 150 - 35
4 - 100 - 10
5 - 999 - 50

Ez a formázás után így nézne ki.

A - B - C
4 - 100 - 10
2 - 300 - 10
1 - 100 - 20
3 - 150 - 35
5 - 999 - 50

Másodlagos paraméter nem szükséges nekem sem.


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2017.10.05. 14:53 
Offline
Signore Senior
Avatar

Csatlakozott: 2011.09.09. 17:39
Hozzászólások: 4020
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 139 alkalommal
Érdemes ilyenkor a megoldást is közzétenni, mivel lehetséges, hogy másnak is szüksége van ilyesmire.

Tegyük fel, hogy van egy objektumod, amelynek van 3 property-je.
Kód:
User {
    name,
    age,
    registerDate
}


Valamint egy akármilyen kollekciód, amely ilyen típusú objektumokat tárol.

Kód:
Collection<User> users = getUsersFromSomeDeeperLayer();


Tudsz több féle property alapján is rendezni, tegyük fel, hogy azt szeretnénk, hogy névszerinti, azon belül életkor szerinti növekvő sorrendbe legyenek a userjeink.
Ehhez hozzunk létre kettő nevesített comparatort (nem muszáj nevesített, lehet anoním objektumként is összehasonlítani, de ez talán átláthatóbb + újrahasznosítható).

Kód:
Comparator<User> byName = new Comparator<User>() {
   @Override
   public int compare(User user1, User user2) {
      return user1.name.compareTo(user2.name);
   }
}

Comparator<User> byAge= new Comparator<User>() {
   @Override
   public int compare(User user1, User user2) {
      return user1.age.compareTo(user2.age);
   }
}


Nincs más dolgunk, minthogy lepéldányosítsunk (vagy valami service-ből kérni egy instance-t) egy ComparatorChain osztályt, hozzáadni a comparatorjainkat és rendezni a kollekciót.

Kód:
   final ComparatorChain comparatorChain = new ComparatorChain();
   comparatorChain.addComparator(byName);
   comparatorChain.addComparator(byAge);
   
   List<User> sortedUsers = Lists.newArrayList(users);
   
   Collections.sort(sortedUsers, new Comparator<User>() {
      @Override
      public int compare(User user1, User user2 ) {
         return comparatorChain.compare(user1, user2);
      }
   }
   



Ez a Java-s megvalósítás, mivel nem írtad miben dolgozol és a Java áll a legközelebb hozzám, így ezt írtam le példaként. :D

Ők köszönték meg Silent nek ezt a hozzászólást: JohanCorn (2017.10.06. 17:26)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2017.10.06. 17:28 
Offline
Fórum Moderátor
Avatar

Csatlakozott: 2014.05.01. 13:18
Hozzászólások: 627
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 104 alkalommal
Még nem foglalkoztam Java-val, de bizonyára ez a jövőben is hasznos lesz. Jelenleg és a kérdésfeltételkor is PHP-val babráltam. Ez esetben volt egy egyszerű funkció az array_multisort az oszlopok sorba rendezésére.


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 3 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole