在Java中有SortedSet和SortedMap接口.两者都属于Java的标准集合框架,并提供了一种访问元素的排序方式.
但是,根据我的理解SortedList,Java中没有.您可以使用java.util.Collections.sort()对列表进行排序.
知道为什么它的设计是这样的吗?
假设我们有一个名为imageFile的自定义类,该类包含两个属性.
class imageFile {
var fileName = String()
var fileID = Int()
}
Run Code Online (Sandbox Code Playgroud)
很多都存储在Array中
var images : Array = []
var aImage = imageFile()
aImage.fileName = "image1.png"
aImage.fileID = 101
images.append(aImage)
aImage = imageFile()
aImage.fileName = "image1.png"
aImage.fileID = 202
images.append(aImage)
Run Code Online (Sandbox Code Playgroud)
问题是:如何通过'fileID'ASC或DESC对图像数组进行排序?
我需要按键对JavaScript对象进行排序.
因此如下:
{ 'b' : 'asdsad', 'c' : 'masdas', 'a' : 'dsfdsfsdf' }
Run Code Online (Sandbox Code Playgroud)
会成为:
{ 'a' : 'dsfdsfsdf', 'b' : 'asdsad', 'c' : 'masdas' }
Run Code Online (Sandbox Code Playgroud) 我在Framework 3.5上使用C#.我正在寻找快速排序Generic List<T>.为了这个例子,假设我有Person一个属性列表,其属性为lastname.如何使用lambda表达式对此List进行排序?
List<Person> people = PopulateList();
people.OrderBy(???? => ?????)
Run Code Online (Sandbox Code Playgroud) argumentsJavaScript中的对象是一个奇怪的疣 - 它在大多数情况下就像一个数组,但它实际上并不是一个数组对象.因为它是真正的完全是另一回事,它没有从有用的功能Array.prototype类似forEach,sort,filter,和map.
使用简单的for循环从arguments对象构造一个新数组非常容易.例如,此函数对其参数进行排序:
function sortArgs() {
var args = [];
for (var i = 0; i < arguments.length; i++)
args[i] = arguments[i];
return args.sort();
}
Run Code Online (Sandbox Code Playgroud)
但是,这是一个相当可怜的事情,只需要访问非常有用的JavaScript数组函数.是否有使用标准库的内置方法?
给定这个数组:
$inventory = array(
array("type"=>"fruit", "price"=>3.50),
array("type"=>"milk", "price"=>2.90),
array("type"=>"pork", "price"=>5.43),
);
Run Code Online (Sandbox Code Playgroud)
我想按价格排序$inventory元素得到:
$inventory = array(
array("type"=>"pork", "price"=>5.43),
array("type"=>"fruit", "price"=>3.50),
array("type"=>"milk", "price"=>2.90),
);
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我有一份清单清单:
[[12, 'tall', 'blue', 1],
[2, 'short', 'red', 9],
[4, 'tall', 'blue', 13]]
Run Code Online (Sandbox Code Playgroud)
如果我想按一个元素排序,比如高/短元素,我可以通过s = sorted(s, key = itemgetter(1)).
如果我想作为排序依据两个高大/ short和颜色,我可以为每个元素做排序两次,一次,但有一个更快的方法?
回答另一个Stack Overflow问题(这个)我偶然发现了一个有趣的子问题.排序6个整数数组的最快方法是什么?
由于问题是非常低的水平:
&&或||).真的这个问题是一种高尔夫,其目标不是最小化源长度而是执行时间.我把它叫做"Zening"代码在本书的标题中的代码优化禅由迈克尔·亚伯拉什及其续集.
至于为什么它很有趣,有几个层次:
这是我的参考(天真的,未优化的)实现和我的测试集.
#include <stdio.h>
static __inline__ int sort6(int * d){
char j, i, imin;
int tmp;
for (j = 0 ; j < 5 ; j++){
imin = j;
for (i = j + 1; i < 6 ; i++){
if (d[i] < d[imin]){
imin = i;
}
}
tmp = d[j];
d[j] = d[imin];
d[imin] = …Run Code Online (Sandbox Code Playgroud) 如何[UIFont familyNames]按字母顺序对填充的数组进行排序?
sorting ×10
arrays ×3
javascript ×2
python ×2
algorithm ×1
arguments ×1
c# ×1
collections ×1
generics ×1
gpgpu ×1
java ×1
lambda ×1
list ×1
objective-c ×1
optimization ×1
php ×1
string ×1
swift ×1