集合后台排序(java)——按照汉字中文拼音

Java List设备按名称排序
这段Java代码展示了如何使用Comparator接口对Device对象列表进行排序,根据设备名称进行中文排序。通过Collator.getInstance(java.util.Locale.CHINA)确保了中文字符的正确比较。排序后,遍历并打印排序后的设备列表。
@Test
	public void test() {
		List<Device> list  = new ArrayList<Device>();
		list.add(new Device("我是","i"));
		list.add(new Device("你是","i"));
		list.add(new Device("啊是","i"));
		list.add(new Device("姚是","i"));
		list.add(new Device("爱是","i"));
		list.add(new Device("爱爱是","i"));
		list.add(new Device("别是","i"));
		sortByDeviceName(list);
		for (Device device : list) {
			System.out.println(device);
		}
	}

	public void sortByDeviceName(List<Device> list) {
		Comparator<Device> cmp = new Comparator<Device>() {  
		    public int compare(Device o1, Device o2) {  
		        Comparator<Object> cmp = Collator.getInstance(java.util.Locale.CHINA);  
		        String[] strs1 = new String[2];  
		        strs1[0] = o1.getName();  
		        strs1[1] = o2.getName();  
 
		        Arrays.sort(strs1, cmp);  
		        if (strs1[0].equals(o1.getName())) {
		        	return -1;
		        } else {  
		           return 1;
		        }
		    }  
		};  
		list.sort(cmp); // 按照设备名称排序
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值