# Sorting an array

**URL:** <https://discourse.processing.org/t/sorting-an-array/20992>\
**Category:** Coding Questions\
**Created:** [May 18, 2020, 1:39am UTC](https://discourse.processing.org/t/sorting-an-array/20992 "2020-05-18T01:39:37Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![GoToLoop](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/gotoloop/32/86_2.png) [@GoToLoop](https://discourse.processing.org/u/GoToLoop)\
**Post date:** [May 18, 2020, 3:04am UTC](https://discourse.processing.org/t/sorting-an-array/20992/4 "2020-05-18T03:04:35Z")

</div>

- [Docs.Oracle.com/en/java/javase/11/docs/api/java.base/java/util/Comparator.html#compare(T,T)](http://Docs.Oracle.com/en/java/javase/11/docs/api/java.base/java/util/Comparator.html#compare(T,T))
- [Docs.Oracle.com/en/java/javase/11/docs/api/java.base/java/util/Comparator.html#reversed()](http://Docs.Oracle.com/en/java/javase/11/docs/api/java.base/java/util/Comparator.html#reversed())
- [Docs.Oracle.com/en/java/javase/11/docs/api/java.base/java/util/Arrays.html#sort(T[],java.util.Comparator)](http://Docs.Oracle.com/en/java/javase/11/docs/api/java.base/java/util/Arrays.html#sort(T%5B%5D,java.util.Comparator))

```auto
// https://Discourse.processing.org/t/sorting-an-array/20992/4
// GoToLoop (2020/May/18)

import java.util.Arrays;
import java.util.Comparator;

final PVector[] vecs = {
  new PVector(100, -100), 
  new PVector(-130, 65), 
  new PVector(135, 155)
};

static final Comparator<PVector> HEADING = new Comparator<PVector>() {
  @Override final int compare(final PVector a, final PVector b) {
    return (int) Math.signum(a.heading() - b.heading());
  }
};

static final Comparator<PVector> HEADING_REVERSED = HEADING.reversed();

void setup() {
  println(vecs);
  printVecHeadings();
  println();

  Arrays.sort(vecs, HEADING); // ascending
  println(vecs);
  printVecHeadings();
  println();

  Arrays.sort(vecs, HEADING_REVERSED); // descending
  println(vecs);
  printVecHeadings();

  exit();
}

void printVecHeadings() {
  for (final PVector v : vecs) print(v.heading() + " ");
}

```

---

_[View the full topic](https://discourse.processing.org/t/sorting-an-array/20992)._
