public class HowToSortByRequirementDemo
{
public static void main(String[] args) throws FileNotFoundException
{
Scanner scanner = new Scanner(new File("woman.txt"));
List<String> list = new ArrayList<>();
while(scanner.hasNextLine())
{
list.add(scanner.nextLine());
}
List<Being> beingList = new ArrayList<>();
Random random = new Random();
int width = 1000;
int arm;
int leg;
int eye;
int indexForName;
String name;
int loop = 100;
while(loop > 0)
{
arm = random.nextInt(width);
leg = random.nextInt(width);
eye = random.nextInt(width);
indexForName = random.nextInt(list.size());
name = list.get(indexForName);
beingList.add(new Being(arm, leg, eye, name));
loop--;
}
Collections.sort(beingList, new CompareByArm());
pring(beingList);
System.out.println(" - - - - - - - - - - - ");
Collections.sort(beingList, new CompareByLeg());
pring(beingList);
System.out.println(" - - - - - - - - - - - ");
Collections.sort(beingList, new CompareByEye());
pring(beingList);
}
public static void pring(List<Being> list)
{
list.forEach((b) ->
{
System.out.println(String.format(Locale.GERMAN, "Arm: %d, Leg: %d, Eye: %d, Name: %s%n", b.getArm(), b.getLeg(), b.getEye(), b.getName()));
});
}
}
public class Being
{
private final int arm;
private final int leg;
private final int eye;
private final String name;
public Being(int arm, int leg, int eye, String name)
{
this.arm = arm;
this.leg = leg;
this.eye = eye;
this.name = name;
}
public int getArm()
{
return arm;
}
public int getLeg()
{
return leg;
}
public int getEye()
{
return eye;
}
public String getName()
{
return name;
}
}
public class CompareByArm implements Comparator<Being>
{
@Override
public int compare(Being o1, Being o2)
{
return Integer.compare(o1.getArm(), o2.getArm());
}
}
public class CompareByEye implements Comparator<Being>
{
@Override
public int compare(Being o1, Being o2)
{
return Integer.compare(o1.getEye(), o2.getEye());
}
}
public class CompareByLeg implements Comparator<Being>
{
@Override
public int compare(Being o1, Being o2)
{
return Integer.compare(o1.getLeg(), o2.getLeg());
}
}
/** Output */
Arm: 1, Leg: 845, Eye: 309, Name: Luna
Arm: 3, Leg: 536, Eye: 403, Name: Lily
Arm: 4, Leg: 563, Eye: 656, Name: Scarlett
Arm: 5, Leg: 394, Eye: 214, Name: Esme
Arm: 6, Leg: 472, Eye: 383, Name: Rose
Arm: 20, Leg: 498, Eye: 238, Name: Eliza
Arm: 20, Leg: 987, Eye: 419, Name: Isabelle
Arm: 24, Leg: 557, Eye: 883, Name: Jessica
Arm: 24, Leg: 887, Eye: 490, Name: Harper
Arm: 47, Leg: 882, Eye: 456, Name: Annabelle
Arm: 58, Leg: 797, Eye: 167, Name: Scarlett
Arm: 61, Leg: 742, Eye: 335, Name: Ella
Arm: 82, Leg: 961, Eye: 457, Name: Aria
Arm: 88, Leg: 633, Eye: 572, Name: Poppy
Arm: 90, Leg: 547, Eye: 325, Name: Darcy
Arm: 95, Leg: 978, Eye: 697, Name: Darcy
Arm: 105, Leg: 904, Eye: 860, Name: Arabella
Arm: 134, Leg: 389, Eye: 508, Name: Isla
Arm: 147, Leg: 486, Eye: 703, Name: Megan
Arm: 150, Leg: 110, Eye: 0, Name: Rose
Arm: 174, Leg: 439, Eye: 523, Name: Emilia
Arm: 176, Leg: 829, Eye: 203, Name: Freya
Arm: 187, Leg: 769, Eye: 268, Name: Ruby
Arm: 188, Leg: 120, Eye: 953, Name: Esme
Arm: 215, Leg: 744, Eye: 698, Name: Alice
Arm: 223, Leg: 241, Eye: 207, Name: Ivy
Arm: 241, Leg: 45, Eye: 58, Name: Mia
Arm: 243, Leg: 512, Eye: 964, Name: Lily
Arm: 247, Leg: 622, Eye: 615, Name: Florence
Arm: 248, Leg: 363, Eye: 470, Name: Maddison
Arm: 264, Leg: 229, Eye: 468, Name: Molly
Arm: 269, Leg: 621, Eye: 21, Name: Willow
Arm: 271, Leg: 563, Eye: 282, Name: Darcy
Arm: 276, Leg: 341, Eye: 591, Name: Layla
Arm: 321, Leg: 237, Eye: 229, Name: Emily
Arm: 343, Leg: 300, Eye: 914, Name: Florence
Arm: 347, Leg: 455, Eye: 123, Name: Aisha
Arm: 348, Leg: 602, Eye: 881, Name: Jessica
Arm: 356, Leg: 561, Eye: 442, Name: Mila
Arm: 356, Leg: 303, Eye: 637, Name: Erin
Arm: 372, Leg: 855, Eye: 180, Name: Lola
Arm: 374, Leg: 415, Eye: 867, Name: Maria
Arm: 383, Leg: 642, Eye: 389, Name: Rose
Arm: 385, Leg: 756, Eye: 294, Name: Gracie
Arm: 389, Leg: 164, Eye: 754, Name: Phoebe
Arm: 411, Leg: 594, Eye: 21, Name: Maya
Arm: 412, Leg: 118, Eye: 968, Name: Nancy
Arm: 437, Leg: 29, Eye: 809, Name: Lucy
Arm: 445, Leg: 203, Eye: 468, Name: Sofia
Arm: 468, Leg: 407, Eye: 820, Name: Maisie
Arm: 473, Leg: 684, Eye: 830, Name: Lucy
Arm: 475, Leg: 749, Eye: 363, Name: Sophie
Arm: 492, Leg: 824, Eye: 540, Name: Willow
Arm: 511, Leg: 768, Eye: 785, Name: Freya
Arm: 527, Leg: 281, Eye: 502, Name: Harper
Arm: 528, Leg: 925, Eye: 231, Name: Daisy
Arm: 529, Leg: 16, Eye: 727, Name: Harriet
Arm: 537, Leg: 761, Eye: 109, Name: Grace
Arm: 540, Leg: 442, Eye: 447, Name: Francesca
Arm: 555, Leg: 135, Eye: 439, Name: Holly
Arm: 563, Leg: 570, Eye: 787, Name: Jessica
Arm: 566, Leg: 153, Eye: 324, Name: Georgia
Arm: 577, Leg: 709, Eye: 852, Name: Darcy
Arm: 581, Leg: 410, Eye: 820, Name: Violet
Arm: 596, Leg: 144, Eye: 792, Name: Zara
Arm: 602, Leg: 706, Eye: 176, Name: Violet
Arm: 636, Leg: 398, Eye: 167, Name: Mia
Arm: 643, Leg: 198, Eye: 212, Name: Lily
Arm: 646, Leg: 582, Eye: 170, Name: Francesca
Arm: 660, Leg: 772, Eye: 726, Name: Luna
Arm: 660, Leg: 25, Eye: 524, Name: Annabelle
Arm: 661, Leg: 279, Eye: 345, Name: Julia
Arm: 662, Leg: 566, Eye: 805, Name: Lilly
Arm: 664, Leg: 789, Eye: 696, Name: Ellie
Arm: 671, Leg: 641, Eye: 531, Name: Thea
Arm: 678, Leg: 144, Eye: 436, Name: Sophie
Arm: 680, Leg: 305, Eye: 338, Name: Bella
Arm: 721, Leg: 595, Eye: 319, Name: Isabelle
Arm: 723, Leg: 632, Eye: 395, Name: Ivy
Arm: 778, Leg: 823, Eye: 619, Name: Sophia
Arm: 779, Leg: 163, Eye: 363, Name: Gracie
Arm: 779, Leg: 678, Eye: 891, Name: Charlotte
Arm: 792, Leg: 324, Eye: 58, Name: Nancy
Arm: 798, Leg: 75, Eye: 622, Name: Florence
Arm: 805, Leg: 888, Eye: 221, Name: Martha
Arm: 820, Leg: 713, Eye: 39, Name: Victoria
Arm: 826, Leg: 671, Eye: 20, Name: Lucy
Arm: 843, Leg: 450, Eye: 447, Name: Ivy
Arm: 849, Leg: 630, Eye: 712, Name: Emilia
Arm: 857, Leg: 202, Eye: 691, Name: Felicity
Arm: 864, Leg: 60, Eye: 800, Name: Emily
Arm: 867, Leg: 808, Eye: 735, Name: Sara
Arm: 926, Leg: 231, Eye: 184, Name: Isla
Arm: 930, Leg: 794, Eye: 88, Name: Charlotte
Arm: 934, Leg: 971, Eye: 359, Name: Eva
Arm: 934, Leg: 263, Eye: 419, Name: Emily
Arm: 935, Leg: 226, Eye: 629, Name: Sienna
Arm: 938, Leg: 905, Eye: 642, Name: Luna
Arm: 966, Leg: 913, Eye: 892, Name: Maya
Arm: 987, Leg: 668, Eye: 535, Name: Hannah
- - - - - - - - - - -
Arm: 529, Leg: 16, Eye: 727, Name: Harriet
Arm: 660, Leg: 25, Eye: 524, Name: Annabelle
Arm: 437, Leg: 29, Eye: 809, Name: Lucy
Arm: 241, Leg: 45, Eye: 58, Name: Mia
Arm: 864, Leg: 60, Eye: 800, Name: Emily
Arm: 798, Leg: 75, Eye: 622, Name: Florence
Arm: 150, Leg: 110, Eye: 0, Name: Rose
Arm: 412, Leg: 118, Eye: 968, Name: Nancy
Arm: 188, Leg: 120, Eye: 953, Name: Esme
Arm: 555, Leg: 135, Eye: 439, Name: Holly
Arm: 596, Leg: 144, Eye: 792, Name: Zara
Arm: 678, Leg: 144, Eye: 436, Name: Sophie
Arm: 566, Leg: 153, Eye: 324, Name: Georgia
Arm: 779, Leg: 163, Eye: 363, Name: Gracie
Arm: 389, Leg: 164, Eye: 754, Name: Phoebe
Arm: 643, Leg: 198, Eye: 212, Name: Lily
Arm: 857, Leg: 202, Eye: 691, Name: Felicity
Arm: 445, Leg: 203, Eye: 468, Name: Sofia
Arm: 935, Leg: 226, Eye: 629, Name: Sienna
Arm: 264, Leg: 229, Eye: 468, Name: Molly
Arm: 926, Leg: 231, Eye: 184, Name: Isla
Arm: 321, Leg: 237, Eye: 229, Name: Emily
Arm: 223, Leg: 241, Eye: 207, Name: Ivy
Arm: 934, Leg: 263, Eye: 419, Name: Emily
Arm: 661, Leg: 279, Eye: 345, Name: Julia
Arm: 527, Leg: 281, Eye: 502, Name: Harper
Arm: 343, Leg: 300, Eye: 914, Name: Florence
Arm: 356, Leg: 303, Eye: 637, Name: Erin
Arm: 680, Leg: 305, Eye: 338, Name: Bella
Arm: 792, Leg: 324, Eye: 58, Name: Nancy
Arm: 276, Leg: 341, Eye: 591, Name: Layla
Arm: 248, Leg: 363, Eye: 470, Name: Maddison
Arm: 134, Leg: 389, Eye: 508, Name: Isla
Arm: 5, Leg: 394, Eye: 214, Name: Esme
Arm: 636, Leg: 398, Eye: 167, Name: Mia
Arm: 468, Leg: 407, Eye: 820, Name: Maisie
Arm: 581, Leg: 410, Eye: 820, Name: Violet
Arm: 374, Leg: 415, Eye: 867, Name: Maria
Arm: 174, Leg: 439, Eye: 523, Name: Emilia
Arm: 540, Leg: 442, Eye: 447, Name: Francesca
Arm: 843, Leg: 450, Eye: 447, Name: Ivy
Arm: 347, Leg: 455, Eye: 123, Name: Aisha
Arm: 6, Leg: 472, Eye: 383, Name: Rose
Arm: 147, Leg: 486, Eye: 703, Name: Megan
Arm: 20, Leg: 498, Eye: 238, Name: Eliza
Arm: 243, Leg: 512, Eye: 964, Name: Lily
Arm: 3, Leg: 536, Eye: 403, Name: Lily
Arm: 90, Leg: 547, Eye: 325, Name: Darcy
Arm: 24, Leg: 557, Eye: 883, Name: Jessica
Arm: 356, Leg: 561, Eye: 442, Name: Mila
Arm: 4, Leg: 563, Eye: 656, Name: Scarlett
Arm: 271, Leg: 563, Eye: 282, Name: Darcy
Arm: 662, Leg: 566, Eye: 805, Name: Lilly
Arm: 563, Leg: 570, Eye: 787, Name: Jessica
Arm: 646, Leg: 582, Eye: 170, Name: Francesca
Arm: 411, Leg: 594, Eye: 21, Name: Maya
Arm: 721, Leg: 595, Eye: 319, Name: Isabelle
Arm: 348, Leg: 602, Eye: 881, Name: Jessica
Arm: 269, Leg: 621, Eye: 21, Name: Willow
Arm: 247, Leg: 622, Eye: 615, Name: Florence
Arm: 849, Leg: 630, Eye: 712, Name: Emilia
Arm: 723, Leg: 632, Eye: 395, Name: Ivy
Arm: 88, Leg: 633, Eye: 572, Name: Poppy
Arm: 671, Leg: 641, Eye: 531, Name: Thea
Arm: 383, Leg: 642, Eye: 389, Name: Rose
Arm: 987, Leg: 668, Eye: 535, Name: Hannah
Arm: 826, Leg: 671, Eye: 20, Name: Lucy
Arm: 779, Leg: 678, Eye: 891, Name: Charlotte
Arm: 473, Leg: 684, Eye: 830, Name: Lucy
Arm: 602, Leg: 706, Eye: 176, Name: Violet
Arm: 577, Leg: 709, Eye: 852, Name: Darcy
Arm: 820, Leg: 713, Eye: 39, Name: Victoria
Arm: 61, Leg: 742, Eye: 335, Name: Ella
Arm: 215, Leg: 744, Eye: 698, Name: Alice
Arm: 475, Leg: 749, Eye: 363, Name: Sophie
Arm: 385, Leg: 756, Eye: 294, Name: Gracie
Arm: 537, Leg: 761, Eye: 109, Name: Grace
Arm: 511, Leg: 768, Eye: 785, Name: Freya
Arm: 187, Leg: 769, Eye: 268, Name: Ruby
Arm: 660, Leg: 772, Eye: 726, Name: Luna
Arm: 664, Leg: 789, Eye: 696, Name: Ellie
Arm: 930, Leg: 794, Eye: 88, Name: Charlotte
Arm: 58, Leg: 797, Eye: 167, Name: Scarlett
Arm: 867, Leg: 808, Eye: 735, Name: Sara
Arm: 778, Leg: 823, Eye: 619, Name: Sophia
Arm: 492, Leg: 824, Eye: 540, Name: Willow
Arm: 176, Leg: 829, Eye: 203, Name: Freya
Arm: 1, Leg: 845, Eye: 309, Name: Luna
Arm: 372, Leg: 855, Eye: 180, Name: Lola
Arm: 47, Leg: 882, Eye: 456, Name: Annabelle
Arm: 24, Leg: 887, Eye: 490, Name: Harper
Arm: 805, Leg: 888, Eye: 221, Name: Martha
Arm: 105, Leg: 904, Eye: 860, Name: Arabella
Arm: 938, Leg: 905, Eye: 642, Name: Luna
Arm: 966, Leg: 913, Eye: 892, Name: Maya
Arm: 528, Leg: 925, Eye: 231, Name: Daisy
Arm: 82, Leg: 961, Eye: 457, Name: Aria
Arm: 934, Leg: 971, Eye: 359, Name: Eva
Arm: 95, Leg: 978, Eye: 697, Name: Darcy
Arm: 20, Leg: 987, Eye: 419, Name: Isabelle
- - - - - - - - - - -
Arm: 150, Leg: 110, Eye: 0, Name: Rose
Arm: 826, Leg: 671, Eye: 20, Name: Lucy
Arm: 411, Leg: 594, Eye: 21, Name: Maya
Arm: 269, Leg: 621, Eye: 21, Name: Willow
Arm: 820, Leg: 713, Eye: 39, Name: Victoria
Arm: 241, Leg: 45, Eye: 58, Name: Mia
Arm: 792, Leg: 324, Eye: 58, Name: Nancy
Arm: 930, Leg: 794, Eye: 88, Name: Charlotte
Arm: 537, Leg: 761, Eye: 109, Name: Grace
Arm: 347, Leg: 455, Eye: 123, Name: Aisha
Arm: 636, Leg: 398, Eye: 167, Name: Mia
Arm: 58, Leg: 797, Eye: 167, Name: Scarlett
Arm: 646, Leg: 582, Eye: 170, Name: Francesca
Arm: 602, Leg: 706, Eye: 176, Name: Violet
Arm: 372, Leg: 855, Eye: 180, Name: Lola
Arm: 926, Leg: 231, Eye: 184, Name: Isla
Arm: 176, Leg: 829, Eye: 203, Name: Freya
Arm: 223, Leg: 241, Eye: 207, Name: Ivy
Arm: 643, Leg: 198, Eye: 212, Name: Lily
Arm: 5, Leg: 394, Eye: 214, Name: Esme
Arm: 805, Leg: 888, Eye: 221, Name: Martha
Arm: 321, Leg: 237, Eye: 229, Name: Emily
Arm: 528, Leg: 925, Eye: 231, Name: Daisy
Arm: 20, Leg: 498, Eye: 238, Name: Eliza
Arm: 187, Leg: 769, Eye: 268, Name: Ruby
Arm: 271, Leg: 563, Eye: 282, Name: Darcy
Arm: 385, Leg: 756, Eye: 294, Name: Gracie
Arm: 1, Leg: 845, Eye: 309, Name: Luna
Arm: 721, Leg: 595, Eye: 319, Name: Isabelle
Arm: 566, Leg: 153, Eye: 324, Name: Georgia
Arm: 90, Leg: 547, Eye: 325, Name: Darcy
Arm: 61, Leg: 742, Eye: 335, Name: Ella
Arm: 680, Leg: 305, Eye: 338, Name: Bella
Arm: 661, Leg: 279, Eye: 345, Name: Julia
Arm: 934, Leg: 971, Eye: 359, Name: Eva
Arm: 779, Leg: 163, Eye: 363, Name: Gracie
Arm: 475, Leg: 749, Eye: 363, Name: Sophie
Arm: 6, Leg: 472, Eye: 383, Name: Rose
Arm: 383, Leg: 642, Eye: 389, Name: Rose
Arm: 723, Leg: 632, Eye: 395, Name: Ivy
Arm: 3, Leg: 536, Eye: 403, Name: Lily
Arm: 934, Leg: 263, Eye: 419, Name: Emily
Arm: 20, Leg: 987, Eye: 419, Name: Isabelle
Arm: 678, Leg: 144, Eye: 436, Name: Sophie
Arm: 555, Leg: 135, Eye: 439, Name: Holly
Arm: 356, Leg: 561, Eye: 442, Name: Mila
Arm: 540, Leg: 442, Eye: 447, Name: Francesca
Arm: 843, Leg: 450, Eye: 447, Name: Ivy
Arm: 47, Leg: 882, Eye: 456, Name: Annabelle
Arm: 82, Leg: 961, Eye: 457, Name: Aria
Arm: 445, Leg: 203, Eye: 468, Name: Sofia
Arm: 264, Leg: 229, Eye: 468, Name: Molly
Arm: 248, Leg: 363, Eye: 470, Name: Maddison
Arm: 24, Leg: 887, Eye: 490, Name: Harper
Arm: 527, Leg: 281, Eye: 502, Name: Harper
Arm: 134, Leg: 389, Eye: 508, Name: Isla
Arm: 174, Leg: 439, Eye: 523, Name: Emilia
Arm: 660, Leg: 25, Eye: 524, Name: Annabelle
Arm: 671, Leg: 641, Eye: 531, Name: Thea
Arm: 987, Leg: 668, Eye: 535, Name: Hannah
Arm: 492, Leg: 824, Eye: 540, Name: Willow
Arm: 88, Leg: 633, Eye: 572, Name: Poppy
Arm: 276, Leg: 341, Eye: 591, Name: Layla
Arm: 247, Leg: 622, Eye: 615, Name: Florence
Arm: 778, Leg: 823, Eye: 619, Name: Sophia
Arm: 798, Leg: 75, Eye: 622, Name: Florence
Arm: 935, Leg: 226, Eye: 629, Name: Sienna
Arm: 356, Leg: 303, Eye: 637, Name: Erin
Arm: 938, Leg: 905, Eye: 642, Name: Luna
Arm: 4, Leg: 563, Eye: 656, Name: Scarlett
Arm: 857, Leg: 202, Eye: 691, Name: Felicity
Arm: 664, Leg: 789, Eye: 696, Name: Ellie
Arm: 95, Leg: 978, Eye: 697, Name: Darcy
Arm: 215, Leg: 744, Eye: 698, Name: Alice
Arm: 147, Leg: 486, Eye: 703, Name: Megan
Arm: 849, Leg: 630, Eye: 712, Name: Emilia
Arm: 660, Leg: 772, Eye: 726, Name: Luna
Arm: 529, Leg: 16, Eye: 727, Name: Harriet
Arm: 867, Leg: 808, Eye: 735, Name: Sara
Arm: 389, Leg: 164, Eye: 754, Name: Phoebe
Arm: 511, Leg: 768, Eye: 785, Name: Freya
Arm: 563, Leg: 570, Eye: 787, Name: Jessica
Arm: 596, Leg: 144, Eye: 792, Name: Zara
Arm: 864, Leg: 60, Eye: 800, Name: Emily
Arm: 662, Leg: 566, Eye: 805, Name: Lilly
Arm: 437, Leg: 29, Eye: 809, Name: Lucy
Arm: 468, Leg: 407, Eye: 820, Name: Maisie
Arm: 581, Leg: 410, Eye: 820, Name: Violet
Arm: 473, Leg: 684, Eye: 830, Name: Lucy
Arm: 577, Leg: 709, Eye: 852, Name: Darcy
Arm: 105, Leg: 904, Eye: 860, Name: Arabella
Arm: 374, Leg: 415, Eye: 867, Name: Maria
Arm: 348, Leg: 602, Eye: 881, Name: Jessica
Arm: 24, Leg: 557, Eye: 883, Name: Jessica
Arm: 779, Leg: 678, Eye: 891, Name: Charlotte
Arm: 966, Leg: 913, Eye: 892, Name: Maya
Arm: 343, Leg: 300, Eye: 914, Name: Florence
Arm: 188, Leg: 120, Eye: 953, Name: Esme
Arm: 243, Leg: 512, Eye: 964, Name: Lily
Arm: 412, Leg: 118, Eye: 968, Name: Nancy