61 lines
1.5 KiB
JavaScript
61 lines
1.5 KiB
JavaScript
import ArrayList from './ArrayList'
|
|
|
|
/**
|
|
* @see http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html
|
|
*
|
|
* @constructor
|
|
* @private
|
|
*/
|
|
export default class Arrays {
|
|
static sort () {
|
|
const a = arguments[0]
|
|
let i
|
|
let t
|
|
let comparator
|
|
let compare
|
|
if (arguments.length === 1) {
|
|
compare = function (a, b) {
|
|
return a.compareTo(b)
|
|
}
|
|
a.sort(compare)
|
|
} else if (arguments.length === 2) {
|
|
comparator = arguments[1]
|
|
compare = function (a, b) {
|
|
return comparator['compare'](a, b)
|
|
}
|
|
a.sort(compare)
|
|
} else if (arguments.length === 3) {
|
|
t = a.slice(arguments[1], arguments[2])
|
|
t.sort()
|
|
var r = a.slice(0, arguments[1]).concat(t, a.slice(arguments[2], a.length))
|
|
a.splice(0, a.length)
|
|
for (i = 0; i < r.length; i++) {
|
|
a.push(r[i])
|
|
}
|
|
} else if (arguments.length === 4) {
|
|
t = a.slice(arguments[1], arguments[2])
|
|
comparator = arguments[3]
|
|
compare = function (a, b) {
|
|
return comparator['compare'](a, b)
|
|
}
|
|
t.sort(compare)
|
|
r = a.slice(0, arguments[1]).concat(t, a.slice(arguments[2], a.length))
|
|
a.splice(0, a.length)
|
|
for (i = 0; i < r.length; i++) {
|
|
a.push(r[i])
|
|
}
|
|
}
|
|
}
|
|
/**
|
|
* @param {Array} array
|
|
* @return {ArrayList}
|
|
*/
|
|
static asList (array) {
|
|
var arrayList = new ArrayList()
|
|
for (var i = 0, len = array.length; i < len; i++) {
|
|
arrayList.add(array[i])
|
|
}
|
|
return arrayList
|
|
}
|
|
}
|