热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

按字母顺序排序java中的输出文件-Alphabeticallysortingoutputfileinjava

Ihaveaprogramthattakesdatafromafile:我有一个从文件中获取数据的程序:IdFirstNameLastName1

I have a program that takes data from a file:

我有一个从文件中获取数据的程序:

Id     First Name   Last Name
1      John         Smith
2      Joe          Blow
3      Cat          Dog

Then takes that data and generates a username and password based on the info given above:

然后获取该数据并根据上面给出的信息生成用户名和密码:

Id     Username    Password
1      SmJo1       w6o3ju2y
2      BlJo2       kv4nbu4a
3      DoCa3       7gpxlaup

Basically what I need done is to get my program to organize the input file in alphabetical order according to last name which would in turn organize my output file in the same order, I have no idea how to go about this though.

基本上我需要做的是让我的程序按照字母顺序按照字母顺序组织输入文件,而后者又按照相同的顺序组织我的输出文件,我不知道如何去做。

4 个解决方案

#1


1  

Assuming you have a Person class as follows:

假设您有一个Person类,如下所示:

public class Person {
   private int id;
   private String firstName;
   private String lastName;

   public int getId() {
       return id;
   }
   public void setId(int id) {
       this.id = id;
   }
   public String getFirstName() {
       return firstName;
   }
   public void setFirstName(String firstName) {
       this.firstName = firstName;
   }
   public String getLastName() {
       return lastName;
   }
   public void setLastName(String lastName) {
       this.lastName = lastName;
   }

   public Person(int id, String firstName, String lastName) {
       super();
       this.id = id;
       this.firstName = firstName;
       this.lastName = lastName;
   }
}

you can sort the list of Person objects using the static sort method of Collections as shown below:

您可以使用Collections的静态排序方法对Person对象列表进行排序,如下所示:

    List persOns= new ArrayList();
    persons.add(new Person(1, "John", "Smith"));
    persons.add(new Person(2, "Joe", "Blow"));
    persons.add(new Person(3, "Cat", "Dog"));

    Collections.sort(persons, new Comparator() {
        public int compare(Person p1, Person p2) {
            String lastName1 = p1.getLastName();
            String lastName2 = p2.getLastName();
            return lastName1.compareTo(lastName2);
        }
    });

#2


0  

You can use a TreeMap in this case where your key can be the lastname and value can be comma separated string of Firstname and ID or your value can be an ArrayList of string where you store the ID and Firstname as strings and later after retrieving convert them.

在这种情况下,您可以使用TreeMap,其中您的键可以是姓氏,值可以是逗号分隔的Firstname和ID字符串,或者您的值可以是字符串的ArrayList,其中您将ID和Firstname存储为字符串,稍后在检索转换它们之后。

The treeMap will automatically store the lastname in sorted order.

treeMap将按排序顺序自动存储姓氏。

#3


0  

Create a Person class

创建一个Person类

public class Person implements Comparable {

   private String firstName;
   private String lastName;
   private String username;
   private String password;

  //do stuff

  public int compareTo(Person p) {
     lastName.compareTo(p.lastName);
  }

  public void writeToFile(FileWriter file) {
   //Implements
 }      

}

After, short the array of elements

之后,缩短元素数组

Collections.sort(persons);

And write the persons in order

并按顺序写下这些人

for (Person p : persons) {
   p.writeToFile(fileWriter);
}

#4


0  

The solutions you'll get here will probably all look fairly similar. Here's mine:

你在这里得到的解决方案看起来可能都非常相似。这是我的:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class User implements Comparable {
    private int id;
    private String firstName;
    private String lastName;

    public User(int id, String firstName, String lastName) {
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
    }

    public int compareTo(User other) {
        int lastNameComparison = lastName.compareTo(other.lastName);

        return (lastNameComparison != 0 ? lastNameComparison : firstName
                .compareTo(other.firstName));
    }

    @Override
    public String toString() {
        return String.format("%d\t%s\t%s", id, firstName, lastName);
    }

    public static void main(String... args) {
        List users = new ArrayList();
        users.add(new User(1, "John", "Smith"));
        users.add(new User(2, "Joe", "Blow"));
        users.add(new User(3, "Cat", "Dog"));

        Collections.sort(users);

        for(User user : users) {
            System.out.println(user.toString());
        }
    }
}

推荐阅读
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
author-avatar
戴耳机聆听世界
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有