我有一个包含名单列表的文件。我必须在列表中搜索并打印出我搜索的两个名称之间的所有名称。这是我的代码:
case '5'://broken
System.out.println("Enter the first "last name" of the search.");
String fLast= console.next();
System.out.println("Enter the second "last name" of the search.");
String lLast = console.next();
String temp ="";
if( fLast.compareTo(lLast)<0)
{
temp=lLast;
lLast=fLast;
fLast=temp;
}
nameToNameSearch(fLast,lLast);
break;
public void nameToNameSearch(String name1, String name2)
{
ExtPerson[] nameToName = new ExtPerson[nMembes];
for(int x=1;x<nMembers-1; x++)
{
if( bookMembers[x].lastName.compareTo(name1)==0|| bookMembers
[x].lastName.compareTo (name1)>0)
{
if(bookMembers[x].lastName.compareTo(name2)==0|| bookMembers
[x].lastName.compareTo(name1)<0)
{
int add=0;
nameToName[add]=bookMembers[x];
add++;
}
}
答案 0 :(得分:0)
如果这些是赋值的条款,则必须进行一次二进制搜索以找到两个名称中的较低者,然后只是从连续增加的索引中打印名称,直到遇到更高的名称。更高的名称根本不需要参与二进制搜索。