java-使用字符串和数组中的int排序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-使用字符串和数组中的int排序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2408字,纯文字阅读大概需要4分钟。
内容图文
我的作业要求我制作一个电视节目,我可以在其中输入节目,删除,修改和排序节目.我坚持的是排序部分.该程序会提示用户输入节目名称,新剧集首播的日期和时间,这些都存储在数组中.它按键名称,日期和时间(字母和数字)排序.
该程序提示用户输入这些键之一,然后该程序需要按该键对显示进行排序(按天排序将按字母顺序排序).
我制作了一个类,并使用数组保存了输入的节目.这是课程:
public class showInfo
{
String name;
String day;
int time;
}
我已经输入了这样的节目:
public static void addShow() throws IOException
{
//initialize counter
int i = 0;
arr = new showInfo[i];
showInfo temp = new showInfo();
//input information
do
{
System.out.print("Enter the name of show: ");
String showName = br.readLine();
temp.name = showName;
System.out.print("Enter which day of the week a new episode premieres: ");
String showDay = br.readLine();
temp.day = showDay;
System.out.print("Enter time in 24-hour format (e.g. 2100, 1900): ");
int showTime = Integer.valueOf(br.readLine()).intValue();
temp.time = showTime;
i++;
System.out.print("Would you like to add another show? (y/n) ");
}
while((br.readLine().compareTo("n"))!=0);
}
为了按时间排序,我编写了以下方法:
public static void timeSort()
{
int min;
for (int i = 0; i < arr.length; i++)
{
// Assume first element is min
min = i;
for (int j = i+1; j < arr.length; j++)
{
if (arr[j].time < arr[min].time)
{
min = j;
}
}
if (min != i)
{
int temp = arr[i].time;
arr[i].time = arr[min].time;
arr[min].time = temp;
}
}
System.out.println("TV Shows by Time");
for(int i = 0; i < arr.length; i++)
{
System.out.println(arr[i].name + " - " + arr[i].day + " - " + arr[i].time + " hours");
}
}
我的问题是,当我调用它并在主机中输出它时,它仅显示“按时间显示电视节目”文本,而不显示节目.为什么是这样? (我应该显示完整的代码吗?)
我认为我的问题与计数器有关,但是我不确定该如何解决,因为用户应该输入所需的任意数量的节目,并且其他节目的显示数量被修改和删除方法.
任何帮助将是巨大的!提前致谢!
解决方法:
如果不禁止使用Java的Collections API,请使用Arrays.sort(T [],Comparator).然后,您的程序可以维护三个静态的Comparator对象-一个用于显示,一个用于日间,一个用于时间.例如.,
static Comparator<showTime> daySort = new Comparator<showTime>(){
public int compare(showTime st1, showTime st2){
return st1.day.compareTo(st2.day);
}
public boolean equals(Object o){
return this==o; /* Easy way out for this method. */
}
};
然后,您可以使用一个单独的sort方法(如果需要)来调用Arrays.sort:
public static void sort(){
Arrays.sort(arr, daySort);
}
有关更多信息,请参见Arrays和Comparator.
内容总结
以上是互联网集市为您收集整理的java-使用字符串和数组中的int排序全部内容,希望文章能够帮你解决java-使用字符串和数组中的int排序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。