List中对中文名排序

导入架包

对输入到集合中的中文名字进行排序处理,学会如何导入架包,导入架包的时候不要导错;以下是我的架包:

实体类

员工类

public class Emp {
private int no;
private String name;
private String sex;
private String position;
private int age;
private String salary;
private Dept dept;
//1.构造无参构造器,有参构造器
//2.Setter,getter对其封装
}

部门类

public class Dept {
private int number;
private String deptment;
private String introduction;
private int extension;

//1.构造无参构造器,有参构造器
//2.Setter,getter对其封装

}

管理类

public class DeptManager {
static List list = new ArrayList();
public boolean addEmp(Emp e) {
return list.add(e);
}
public List findEmp() {
return list;
}
//姓名排序
public List findByEmpname(){
Collections.sort(list, new Comparator() {

     @Overridepublic int compare(Emp o1, Emp o2) {String name1 = "" ;String name2 = "";for (int i = 0; i < o1.getName().length(); i++) {char c = o1.getName().charAt(i);               String str1 = PinyinHelper.toHanyuPinyinStringArray(c)[0];name1 += str1;for (int j = 0; j < o2.getName().length(); j++) {char c2 = o2.getName().charAt(i);String str2 = PinyinHelper.toHanyuPinyinStringArray(c2)[0];name2 += str2;        }}return name1.compareTo(name2);}});        return list;    }
public List<Emp> findDeptname() {
list.sort(new Comparator<Emp>() {@Overridepublic int compare(Emp o1, Emp o2) {String name1 = "";String name2 = "";for (int i = 0; i < o1.getDept().getDeptment().length(); i++) {char c = o1.getDept().getDeptment().charAt(i);             String str1 = PinyinHelper.toHanyuPinyinStringArray(c)[0];name1 += str1;for (int j = 0; j < o2.getDept().getDeptment().length(); j++) {char c2 = o2.getDept().getDeptment().charAt(i);String str2 = PinyinHelper.toHanyuPinyinStringArray(c2)[0];name2 += str2;}}return name1.compareTo(name2);            }
});return list;
}

}

修改类

public class Client {

DeptManager ma = new DeptManager();
Scanner sc = new Scanner(System.in);public void init() {Dept dt1 = new Dept(1001,"干饭部","专门吃饭", 1008611);Dept dt2 = new Dept(1002,"加班部"," 9 9 1 ",1008612);Dept dt3 = new Dept(1003,"通宵部","通宵达旦 ", 1008613);Emp e1 = new Emp(10, "小非", "男", "董事长二", 40, "90万", dt1);Emp e2 = new Emp(11, "火鸡", "女", "艺术总监", 28, "30万", dt2);Emp e3 = new Emp(12, "大人", "男", "产品经理", 25, "20万", dt3);ma.addEmp(e3);ma.addEmp(e1);ma.addEmp(e2);}
public void findEmpname() {List<Emp> list = ma.findEmp();System.out.println("工号\t姓名\t性别\t职位\t年龄\t月薪\t部门名\t分机号");for (Emp emp : list) {         System.out.println(emp.getNo()+"\t"+emp.getName()+"\t"+emp.getSex()+"\t"+emp.getPosition()
+"\t"+emp.getAge()+"\t"+emp.getSalary()+"\t"+emp.getDept().getDeptment()+"\t"+emp.getDept().getExtension());}
}
public void findByPinyinname() {List<Emp> list = ma.findByEmpname();System.out.println("工号\t姓名\t性别\t职位\t年龄\t月薪\t部门名\t分机号");for (Emp emp : list) {          System.out.println(emp.getNo()+"\t"+emp.getName()+"\t"+emp.getSex()+"\t"+emp.getPosition()
+"\t"+emp.getAge()+"\t"+emp.getSalary()+"\t"+emp.getDept().getDeptment()+"\t"+emp.getDept().getExtension());}}
public void findByPinyindept() {List<Emp> list = ma.findDeptname();System.out.println("工号\t姓名\t性别\t职位\t年龄\t月薪\t部门名\t分机号");for (Emp emp : list) {           System.out.println(emp.getNo()+"\t"+emp.getName()+"\t"+emp.getSex()+"\t"+emp.getPosition()
+"\t"+emp.getAge()+"\t"+emp.getSalary()+"\t"+emp.getDept().getDeptment()+"\t"+emp.getDept().getExtension());        }
}

}

测试类

public class TestClient {

public static void main(String[] args) {Client ct = new Client();//初始化对象ct.init();//显示全部员工信息ct.findEmpname();System.out.println("###########");//对员工名字进行拼音排序ct.findByPinyinname();System.out.println("###########");//对部门名进行拼音排序ct.findByPinyindept();
}

}

测试结果

//代码还可以进一步精简

总结:

1.对泛型集合有清晰的概念;
2.灵活运用多态的思想;
3.集合中的排序能够掌握;
4.正确导入架包。

List集合中文名排序相关推荐

  1. JAVA SE学习day_12:集合的排序、队列、栈结构

    一.集合的排序 1.1 集合的排序 集合的工具类java.util.Collections提供了一个静态方法sort,可以对List集合 进行自然排序,即:从小到大 除了自然排序之外还有反转.乱序方法 ...

  2. golang 排序list_Go语言使用sort包对任意类型元素的集合进行排序的方法

    本文实例讲述了Go语言使用sort包对任意类型元素的集合进行排序的方法.分享给大家供大家参考.具体如下: 使用sort包的函数进行排序时,集合需要实现sort.Inteface接口,该接口中有三个方法 ...

  3. java中集合的排序_Java中集合排序的两种方法

    import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.u ...

  4. java中集合的排序

    java中集合的排序 import java.util.Set; import java.util.HashSet; import java.util.List; import java.util.A ...

  5. java编写排序的代码_在Java 8之前,您编写了几行代码来对对象集合进行排序?...

    java编写排序的代码 在Java 8之前,您编写了几行代码来对对象集合进行排序? Java 8您需要多少个? 您可以在Java 8中用一行完成. 让我们看看下面的Employee类. public ...

  6. jdk 8 集合对象排序_使用JDK 8流在包装对象的集合和包装对象的集合之间转换

    jdk 8 集合对象排序 我发现使用基于Java的应用程序时, 装饰器和适配器有时会很有用. 这些"包装器"在各种情况下都能很好地工作,并且相当容易理解和实现,但是当需要包装对象的 ...

  7. 在Java 8之前,您编写了几行代码来对对象集合进行排序?

    在Java 8之前,您编写了几行代码来对对象集合进行排序? Java 8您需要多少个? 您可以在Java 8中用一行完成. 让我们看看下面的Employee类. public class Employ ...

  8. orderby排序慢_使用@OrderBy对Spring Data MongoDB集合进行排序

    orderby排序慢 这是关于调整和增强Spring Data MongoDB功能的第三篇文章. 这次,我发现我错过了一个JPA功能– @OrderBy批注. @OrderBy指定在检索关联值时集合值 ...

  9. 使用@OrderBy对Spring Data MongoDB集合进行排序

    这是关于调整和增强Spring Data MongoDB功能的第三篇文章. 这次,我发现我错过了一个JPA功能– @OrderBy批注. @OrderBy指定在检索关联值时集合值关联的元素的顺序. 在 ...

最新文章

  1. 重磅!我国建成首个自动驾驶封闭高速公路测试环境
  2. linux--nfs 网络文件共享
  3. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(二)转载自码农网
  4. 如何在计算机上阅读漫画书
  5. cg word List4
  6. MiniDao 比Mybatis还灵活实用的J2EE 持久层轻量级解决方案
  7. java 包错_以下关于Java包的描述中,错误的是()
  8. 肇庆计算机商务学校地址,肇庆市商业学校(商业技工学校)招生报名
  9. cas如何实现多系统间的相互认证_统一身份认证和单点登录的区别
  10. delphi listview动态添加图片_Java 添加PDF图章(印章)——图片图章、动态图章
  11. java 程序出现标点错误,我是学java的新手,下面代码出现报错,请问是什么原因?如何解决?...
  12. JAVA 实现《俄罗斯方块》游戏|CSDN创作打卡
  13. 集成光子芯片Micro-comb原理
  14. element-ui表格编辑
  15. java 注解field_jackson学习之七:常用Field注解
  16. 色彩设计基础知识整理
  17. 猎企如何制定合理的数据战略?(附数据迁移三大注意点)深度干货
  18. Snappy Installer
  19. 【AnimeJs】——仿Animejs徒手实现SVG动画
  20. Free Icon Tool(icon图标提取器)绿色便携版V2.1.5 | 应用图标提取器下载 | 快速提取exe中的ico图标

热门文章

  1. 公众号征稿,50-150元/篇
  2. 续上一个LOL皮肤爬虫:用pyinstaller打包成exe
  3. 帆软FVS大屏之图书馆介绍
  4. Primecoin成为VSYS超级节点 融入VSYS生态圈
  5. Spring Security认证授权练手小项目 腾讯视频VIP权限管理功能
  6. Linux 系统的安装
  7. VisionPro 8.2支持的工业相机和格式
  8. MS7024 TV编码器 8、16、24bit数字信号转AV/S-Video
  9. 腾讯云大数据:神盾首创非对称联邦学习,深度保障数据隐私
  10. 王学岗————FFmpeg软解之视频播放(对应第39、第41、第42)