lots of exercises in java... from https://github.com/exercism/java

example.java 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. public class Triangle {
  2. private double side1;
  3. private double side2;
  4. private double side3;
  5. public Triangle(double side1, double side2, double side3) throws TriangleException {
  6. this.side1 = side1;
  7. this.side2 = side2;
  8. this.side3 = side3;
  9. if (allSidesAreZero() || hasImpossibleSides() || violatesTriangleInequality()) {
  10. throw new TriangleException();
  11. }
  12. }
  13. public TriangleKind getKind() {
  14. int uniqueSides = getNumberOfUniqueSides();
  15. if (uniqueSides == 1) {
  16. return TriangleKind.EQUILATERAL;
  17. }
  18. if (uniqueSides == 2) {
  19. return TriangleKind.ISOSCELES;
  20. }
  21. return TriangleKind.SCALENE;
  22. }
  23. private boolean allSidesAreZero() {
  24. return side1 == 0 && side2 == 0 && side3 == 0;
  25. }
  26. private boolean hasImpossibleSides() {
  27. return side1 < 0 || side2 < 0 || side3 < 0;
  28. }
  29. private boolean violatesTriangleInequality() {
  30. return side1 + side2 <= side3 || side1 + side3 <= side2 || side2 + side3 <= side1;
  31. }
  32. public int getNumberOfUniqueSides() {
  33. Set<Double> sides = new HashSet<>();
  34. sides.add(side1);
  35. sides.add(side2);
  36. sides.add(side3);
  37. return sides.size();
  38. }
  39. }