public Person findByName(List list, String name) { for(int i=0;i <list.size();i++) { Person p = (Person)list.get(i);
if(this.Name.equals(name)) return p; // found } return null; // not found } } 也可以使用 空对象 模式重构
你的class person哪去了? import java.io.*; import java.util.*; class Person{ private String ID; private String Name; private String Mail; private int Age; private String City; class Person{//你不写Person类怎么调用Person实例 public Person() {} public Person(String ID, String Name, String Mail, int Age, String City) { this.ID=ID; this.Name=Name; this.Mail=Mail; this.Age=Age; this.City=City; } public String getID() { return this.ID; } public String getName() { return this.Name; } public String getCity() { return this.City; } public Person findByName(List list, String name) { for(int i=0;i <list.size();i++) { Person p = (Person)list.get(i); if(this.Name.equals(name)) return p; } } } {}
用个eclipse,它能给你语法错误提示
同意6楼,在没有匹配结果的时候,返回一个null
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package exp1;/** * * @author szhu5 */ import java.io.*; import java.util.*; class Person{ private String ID; private String Name; private String Mail; private int Age; private String City;public Person() { } public Person(String ID, String Name, String Mail, int Age, String City) { this.ID=ID; this.Name=Name; this.Mail=Mail; this.Age=Age; this.City=City; } public String getID() { return this.ID; } public String getName() { return this.Name; } public String getCity() { return this.City; } public Person findByName(List list, String name) { for(int i=0;i <list.size();i++) { Person p = (Person)list.get(i); if(this.Name.equals(name)) { return p; }
} return null; } public class ComparatorUser implements Comparator{ public int compare(Object arg0, Object arg1) { Person user0=(Person)arg0; Person user1=(Person)arg1; int flag=user0.getID().compareTo(user1.getID()); return flag; } } } 这个class算好了,但那个另一个需要啥封闭实例 /* * To change this template, choose Tools | Templates * and open the template in the editor. */package exp1;import exp1.Person.ComparatorUser; import java.util.ArrayList; import java.util.Collections; import java.util.List;/** * * @author szhu5 */ public class Tester{public static void main(String [] args) { List list = new ArrayList(); list.add(new Person("2","b","[email protected]",22,"shanghai")); list.add(new Person("3","lucky","[email protected]",22,"beijing")); list.add(new Person("1","a","[email protected]",21,"dalian")); ComparatorUser comparator=new ComparatorUser(); Collections.sort(list,comparator); for(int i=0;i <list.size();i++) { Person p = (Person)list.get(i); System.out.println(p.getID()); } } }
哎,人家就问个编译错误而已。。至于么。。 public Person findByName(List list, String name) { Person p = null; for (int i = 0; i < list.size(); i++) { if (this.Name.equals(name)) p = (Person) list.get(i); } return p; }这样不就好了嘛。
public Person findByName(List list, String name) { Person m=new Person(); for(int i=0;i <list.size();i++) { Person p = (Person)list.get(i); if(this.Name.equals(name)) m = p; } return m; } 这么写应该可以吧
自己debug一下 不就O了
代码不规范,当List为空的时候 得有返回值啊 写成return null;
public Person findByName(List list, String name) { Person p = null; for (int i = 0; i < list.size(); i++) { if (this.Name.equals(name)) p = (Person) list.get(i); } return p; }
if(this.Name.equals(name))
return p;
同意再写个else
for(int i=0;i <list.size();i++)
{
Person p = (Person)list.get(i);
if(this.Name.equals(name))
return p;
} 当list为空的时候,该函数是没有返回Person对象的
if(this.Name.equals(name))
return p; 就算当list不为空,没找到匹配项还是没有返回
{
for(int i=0;i <list.size();i++)
{
Person p = (Person)list.get(i);
if(this.Name.equals(name))
return p; // found
}
return null; // not found
}
}
也可以使用 空对象 模式重构
import java.io.*;
import java.util.*;
class Person{
private String ID;
private String Name;
private String Mail;
private int Age;
private String City;
class Person{//你不写Person类怎么调用Person实例
public Person()
{}
public Person(String ID, String Name, String Mail, int Age, String City)
{
this.ID=ID;
this.Name=Name;
this.Mail=Mail;
this.Age=Age;
this.City=City;
}
public String getID()
{
return this.ID;
}
public String getName()
{
return this.Name;
}
public String getCity()
{
return this.City;
}
public Person findByName(List list, String name)
{
for(int i=0;i <list.size();i++)
{
Person p = (Person)list.get(i);
if(this.Name.equals(name))
return p;
}
}
}
{}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/package exp1;/**
*
* @author szhu5
*/
import java.io.*;
import java.util.*;
class Person{
private String ID;
private String Name;
private String Mail;
private int Age;
private String City;public Person()
{
}
public Person(String ID, String Name, String Mail, int Age, String City)
{
this.ID=ID;
this.Name=Name;
this.Mail=Mail;
this.Age=Age;
this.City=City;
}
public String getID()
{
return this.ID;
}
public String getName()
{
return this.Name;
}
public String getCity()
{
return this.City;
}
public Person findByName(List list, String name)
{
for(int i=0;i <list.size();i++)
{
Person p = (Person)list.get(i);
if(this.Name.equals(name))
{
return p;
}
}
return null;
}
public class ComparatorUser implements Comparator{ public int compare(Object arg0, Object arg1) {
Person user0=(Person)arg0;
Person user1=(Person)arg1;
int flag=user0.getID().compareTo(user1.getID()); return flag;
}
}
}
这个class算好了,但那个另一个需要啥封闭实例
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/package exp1;import exp1.Person.ComparatorUser;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;/**
*
* @author szhu5
*/
public class Tester{public static void main(String [] args)
{
List list = new ArrayList();
list.add(new Person("2","b","[email protected]",22,"shanghai"));
list.add(new Person("3","lucky","[email protected]",22,"beijing"));
list.add(new Person("1","a","[email protected]",21,"dalian"));
ComparatorUser comparator=new ComparatorUser();
Collections.sort(list,comparator);
for(int i=0;i <list.size();i++)
{
Person p = (Person)list.get(i);
System.out.println(p.getID());
}
}
}
额,你觉得lz代码第三行那是什么?私有成员变量都出来了你在那里写class也太晚了吧最后添个return null吧
Person p = null;
for (int i = 0; i < list.size(); i++) {
if (this.Name.equals(name))
p = (Person) list.get(i);
}
return p;
}这样不就好了嘛。
}外面再加个return null;
{
Person m=new Person();
for(int i=0;i <list.size();i++)
{
Person p = (Person)list.get(i);
if(this.Name.equals(name))
m = p;
}
return m;
} 这么写应该可以吧
public Person findByName(List list, String name) {
Person p = null;
for (int i = 0; i < list.size(); i++) {
if (this.Name.equals(name))
p = (Person) list.get(i);
}
return p;
}