导航:首页 > 编程语言 > javakey排序吗

javakey排序吗

发布时间:2022-06-12 16:21:00

‘壹’ java通过数组按首字母排序怎么做

自己封装的一个工具类,可以将汉字按照拼音的首字母排序,支持对Model和字典排序.只能对首字母排序,不支持第二个字母, 实现的原理就是创建一个A-Z的数组,数组中的元素是字典,字典中有两个元素,一个是title,就是当前的首字母 A-Z中的一个,另一个是保存当前title对应的元素的数组,对传入的数组进行遍历获得数组中的一个元素,如果是Model或者字典通过传入的key的值获得要排序的字符串,获得字符串的拼音的首字母,判断拼音的首字母是A-Z中的哪一个,然后放到数组中的对应的字典的数组中.

后来又做了一个对英文的首字母排序的程序,原理和上面的一样,还省略了将汉字转化为拼音的步骤。工具类的名称是:NH_OrderByPinYinFirstLetter。

代码:使用的时候直接调用下面的方法就行,是一个加号方法,第一个参数是保存要排序的元素的数组,第二个参数:如果数组中是Model或者字典,就写排序的依据的key值,如果数组中不是Model或字典,就写nil。

[objc]view plain

//方法

+(NSMutableArray*)baseOrderPinYinOnArr:(NSMutableArray*)arrByKey:(NSString*)key 返回值的类

//返回一个有24个元素的数组,数组里的元素是字典

//字典里有两对键值对

// title :当前的拼音首字母A - Z

// datas :当前的拼音首字母对应的model所组成的数组

‘贰’ java map 怎么按按key排序

java中map按照double大小进行排序,可以使用collentions接口的sort方法进行比较,实例如下:

Collections.sort(dataMap, new Comparator<Map<String, Object>>() { @Override public int compare(Map<String, Object> lhs, Map<String, Object> rhs) { Double d5 = ((Double) rhs.get(OpenPrice)); Double d6 = (Double) lhs.get(OpenPrice); if (d5 != null && d6 != null) { return d5.compareTo(d6); } else { return flag; } // return d1.compareTo(d2);}

根据返回的int类型,可设置按照从大到小还是从小到大排序

‘叁’ 在java里如何对一个map按key排序:Map<String, String[]>

你可以把map数据直接给treeMap就可以,它本身就是排序的。

‘肆’ java如何做到第二次排序不应用第一次排序的结果

做不到。
基本的二次排序,以按照两个字段排序为例,先按第一字段升序,再按第二字段降序,二次排序的核心是把原来的keyvalue对组合成key,称为newkey,value还是value,与原来的wordcount相比,多了一个分组步骤,就是把newkey中的第一个字段相同的数据放到一起,再按第二个字段排序。

‘伍’ java如何把Map<String,Object> map = new HashMap<String, Object>(); 按 Key 排序

首先Map排序需要自己写一堆算法。其次HashMap是无序的,即使已经排序正确了,取值时也不一定就是按顺序取出的。所以直接排序存放是不可行的。

但可以曲线救国的办法,通过Set<String> keys = map.keySet();取得map的key值集合,然后单独给keys来个排序就简单多了,然后按排序后的keys去遍历取值,就OK了。

‘陆’ Java怎么实现HashMap或TreeMap以key值进行排序

HashMap本身是hash散列,做不到你说的排序。
TreeMap可以,是二叉树实现,自己实现一个Comparator。

‘柒’ Java中的map会自动排序吗是按什么排序的

java中的map默认是对元素不排序的,但是map的实现类treemap能够把它保存的记录根据key排序,默认是按升序排序。如果我们想要改变排序方式,则需要使用比较器:comparator。

‘捌’ java里,想对hashmap里的key进行排序

chNNN -> NNN -> Integer.parseInt(NNN)
"ch10" -> "10" -> Integer.parseInt("10") -> 10
--------
Yes, you are right, but not too slow/difficult:

import java.util.*;

public class Tmp {
public static void main(String[] args) {
Map<String, Object> result = new HashMap<String, Object>();
result.put("ch1", "ch 1");
result.put("ch111", "ch 111");
result.put("ch11", "ch 11");
result.put("ch2", "ch 2");
result.put("ch13", "ch 13");
Object[] keys=result.keySet().toArray();
Comparator<Object> c = new Comparator<Object>(){
@Override
public int compare(Object o1, Object o2) {
//TODO: add argument check yourself
int a1 = Integer.parseInt(((String)o1).substring(2));
int a2 = Integer.parseInt(((String)o2).substring(2));
if(a1>a2)return 1;
if(a1==a2)return 0;
else return -1;
}
};
Arrays.sort(keys, c);
for(Object s:keys){
System.out.println(s +"=>"+result.get(s));
}
}
}

‘玖’ JAVA中有哪几种常用的排序方法

最主要的是冒泡排序、选择排序、插入排序以及快速排序

1、冒泡排序



冒泡排序是一个比较简单的排序方法。在待排序的数列基本有序的情况下排序速度较快。若要排序的数有n个,则需要n-1轮排序,第j轮排序中,从第一个数开始,相邻两数比较,若不符合所要求的顺序,则交换两者的位置;直到第n+1-j个数为止,第一个数与第二个数比较,第二个数与第三个数比较,......,第n-j个与第n+1-j个比较,共比较n-1次。此时第n+1-j个位置上的数已经按要求排好,所以不参加以后的比较和交换操作。

例如:第一轮排序:第一个数与第二个数进行比较,若不符合要求的顺序,则交换两者的位置,否则继续进行二个数与第三个数比较......。直到完成第n-1个数与第n个数的比较。此时第n个位置上的数已经按要求排好,它不参与以后的比较和交换操作;第二轮排序:第一个数与第二个数进行比较,......直到完成第n-2个数与第n-1个数的比较;......第n-1轮排序:第一个数与第二个数进行比较,若符合所要求的顺序,则结束冒泡法排序;若不符合要求的顺序,则交换两者的位置,然后结束冒泡法排序。


共n-1轮排序处理,第j轮进行n-j次比较和至多n-j次交换。


从以上排序过程可以看出,较大的数像气泡一样向上冒,而较小的数往下沉,故称冒泡法。



public void bubbleSort(int a[])


{


int n = a.length;


for(int i=0;i<n-1;i++)


{


for(int j=0;j<n-i-1;j++)


{


if(a[j] > a[j+1])


{


int temp = a[j];


a[j] = a[j + 1];


a[j + 1] = temp;


}


}


}


}



2、选择排序



选择法的原理是先将第一个数与后面的每一个数依次比较,不断将将小的赋给第一个数,从而找出最小的,然后第二个数与后面的每一个数依次比较,从而找出第二小的,然后第三个数与后面的每一个数依次比较,从而找出第三小的.....直到找到最后一个数。


public void sort(int x[])


{


int n=x.length;


int k,t;


for(int i=0;i<n-1;i++)


{


k=i;


for(int j=i+1;j=n;j++)


{


if(x[j]>x[k])k=j;


if(k!=i)


{


t=x[i];


x[i]=x[k];


x[k]=t;


}


}


}


}


3、插入排序



插入排序的原理是对数组中的第i个元素,认为它前面的i-1个已经排序好,然后将它插入到前面的i-1个元素中。插入排序对少量元素的排序较为有效.



public void sort(int obj[])


{


for(int j=1;j<obj.length;j++)


{


int key=obj[j];


int i=j-1;


while(i>=0&&obj[i]>key)


{


obj[i+1]=obj[i];


i--;


}


obj[i+1]=key;


}


}



4、快速排序



快速排序是对冒泡排序的一种改进。它的基本思想是:通过一次排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此大道整个数据变成有序序列。



public void quickSort(int obj[],int low,int high)


{


int i=low;


int j=high;


int keyValue=obj[i];


while(i<j)


{


int temp=0;


while(i<j&&obj[j]>=keyValue)


{


j=j-1;


}


temp=obj[j];


obj[j]=obj[i];


obj[i]=temp;


while(i<j&&obj[i]<=keyValue)


{


i=i+1;


}


temp=obj[j];


obj[j]=ojb[i];


obj[i]=temp;


}


obj[i]=keyValue;


if(low<i-1)


{


quickSort(obj,low,i-1);


}


if(high>i+1)


{


quickSort(obj,i+1,high);


}


}

‘拾’ Java中如何对Map的value或者key排序

Object
obj
=
new
Object();
obj
=
map.get("key");
map是Map的那个对象,“key”是表示key的那个值,一般是个字符串

阅读全文

与javakey排序吗相关的资料

热点内容
oa服务器异常怎么办 浏览:68
cmd编译utf8 浏览:276
怎么截取app接受的数据 浏览:276
nrf24l01pdf 浏览:298
php字符串转array 浏览:434
U盘分了文件夹后 浏览:940
javasetstring 浏览:837
压缩包里文件夹是白色的 浏览:472
编译链接知乎 浏览:591
php查询按钮 浏览:715
有音响游戏解压神器 浏览:253
怎么压缩图片jpeg 浏览:713
澳大利亚net程序员 浏览:579
程序员加班难受 浏览:990
如何看服务器品牌 浏览:256
ecy50clp压缩机多少W 浏览:755
mac终端命令怎么保存 浏览:850
微信公众号图片压缩 浏览:440
可以在安卓平板上画画的软件是什么 浏览:438
高盛数字加密 浏览:897