java 集合对象排序

关于集合内部排序,采用 comparator方法做:
1.按属性数字大小排序:

点击查看代码
taskBoxs.sort(new Comparator<TCComponent>() {
			@Override
			public int compare(TCComponent o1, TCComponent o2) {
				// TODO 自动生成的方法存根
				int task1 = 1;
				try {
					task1 = Integer.parseInt(o1.getProperty("new_tasks_count").toString());
					System.out.println(task1);
				} catch (NumberFormatException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				} catch (TCException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
				int task2 = 2;
				try {
					task2 = Integer.parseInt(o2.getProperty("new_tasks_count").toString());
					System.out.println(task2);
				} catch (NumberFormatException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				} catch (TCException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
						
				return task2 - task1;
			}
		});

以上为常见的排序方式,根据对象里的各种属性进行排序即可,不再赘述。

重点:
本次遇到问题:对象属性name为人名,需要按照拼音排序。
解决方式:

点击查看代码
Collections.sort(taskBoxs,(o1, o2) -> {
			try {
				return Collator.getInstance(Locale.CHINA).compare(o1.getProperty("object_string").toString(),         
                                                                                  o2.getProperty("object_string").toString());
			} catch (TCException e1) {
				// TODO 自动生成的 catch 块
				e1.printStackTrace();
			}
			return 0;
		});
posted @ 2022-10-17 15:05  指尖上的远方  阅读(707)  评论(0编辑  收藏  举报