Arrays.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import ArrayList from './ArrayList'
  2. /**
  3. * @see http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html
  4. */
  5. export default class Arrays {
  6. static sort() {
  7. const a = arguments[0]
  8. if (arguments.length === 1) {
  9. a.sort((a, b) => a.compareTo(b))
  10. } else if (arguments.length === 2) {
  11. a.sort((a, b) => arguments[1].compare(a, b))
  12. } else if (arguments.length === 3) {
  13. const t = a.slice(arguments[1], arguments[2])
  14. t.sort()
  15. const r = a.slice(0, arguments[1]).concat(t, a.slice(arguments[2], a.length))
  16. a.splice(0, a.length)
  17. for (const e of r)
  18. a.push(e)
  19. } else if (arguments.length === 4) {
  20. const t = a.slice(arguments[1], arguments[2])
  21. t.sort((a, b) => arguments[3].compare(a, b))
  22. const r = a.slice(0, arguments[1]).concat(t, a.slice(arguments[2], a.length))
  23. a.splice(0, a.length)
  24. for (const e of r)
  25. a.push(e)
  26. }
  27. }
  28. /**
  29. * @param {Array} array
  30. * @return {ArrayList}
  31. */
  32. static asList(array) {
  33. const arrayList = new ArrayList()
  34. for (const e of array)
  35. arrayList.add(e)
  36. return arrayList
  37. }
  38. static copyOf(original, newLength) {
  39. return original.slice(0, newLength)
  40. }
  41. }