45 lines
1.2 KiB
JavaScript
45 lines
1.2 KiB
JavaScript
import ArrayList from './ArrayList'
|
|
|
|
/**
|
|
* @see http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html
|
|
*/
|
|
export default class Arrays {
|
|
static sort() {
|
|
const a = arguments[0]
|
|
if (arguments.length === 1) {
|
|
a.sort((a, b) => a.compareTo(b))
|
|
} else if (arguments.length === 2) {
|
|
a.sort((a, b) => arguments[1].compare(a, b))
|
|
} else if (arguments.length === 3) {
|
|
const t = a.slice(arguments[1], arguments[2])
|
|
t.sort()
|
|
const r = a.slice(0, arguments[1]).concat(t, a.slice(arguments[2], a.length))
|
|
a.splice(0, a.length)
|
|
for (const e of r)
|
|
a.push(e)
|
|
} else if (arguments.length === 4) {
|
|
const t = a.slice(arguments[1], arguments[2])
|
|
t.sort((a, b) => arguments[3].compare(a, b))
|
|
const r = a.slice(0, arguments[1]).concat(t, a.slice(arguments[2], a.length))
|
|
a.splice(0, a.length)
|
|
for (const e of r)
|
|
a.push(e)
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param {Array} array
|
|
* @return {ArrayList}
|
|
*/
|
|
static asList(array) {
|
|
const arrayList = new ArrayList()
|
|
for (const e of array)
|
|
arrayList.add(e)
|
|
return arrayList
|
|
}
|
|
|
|
static copyOf(original, newLength) {
|
|
return original.slice(0, newLength)
|
|
}
|
|
}
|