这2种JAVA程序为何运行结果不同啊?
我写了一个editName的方法,publicclassServices{LinkedList<String>inputNames=newLinkedList<Strin...
我写了一个editName的方法,
public class Services {
LinkedList<String> inputNames = new LinkedList<String>();
public void editName(String oldName,String newName){
LinkedList<String> inputNames = new LinkedList<String>();
if(inputNames.contains(oldName)){
Set<String> set = new HashSet<String>();
for(String str:inputNames){
set.add(oldName);
}
Iterator<String> it =set.iterator();
while(it.hasNext()){
String str=it.next();
for(int i=0;i<inputNames.size();i++){
if(inputNames.get(i).equals(str)){//和旧的名字相同的名字的下标
inputNames.set(i, newName);
}
}
}
}
}
}
可以被调用来修改学生的姓名,结果,我在main方法里调用,学生姓名列表根本没有被修改。但是,单独运行这个方法倒是可以的。
public class Execute {
public static void main(String[] args){//返回需要修改的名字的个数
Services services = new Services();
String oldName ="jerry";
String newName = "anna";
LinkedList<String> inputNames = new LinkedList<String>();
inputNames.add("tom");
inputNames.add("jerry");
inputNames.add("jenny");
inputNames.add("jerry");
inputNames.add("will");
services.editName(oldName,newName);
System.out.println(inputNames);
}
}
不知道原因何在? 展开
public class Services {
LinkedList<String> inputNames = new LinkedList<String>();
public void editName(String oldName,String newName){
LinkedList<String> inputNames = new LinkedList<String>();
if(inputNames.contains(oldName)){
Set<String> set = new HashSet<String>();
for(String str:inputNames){
set.add(oldName);
}
Iterator<String> it =set.iterator();
while(it.hasNext()){
String str=it.next();
for(int i=0;i<inputNames.size();i++){
if(inputNames.get(i).equals(str)){//和旧的名字相同的名字的下标
inputNames.set(i, newName);
}
}
}
}
}
}
可以被调用来修改学生的姓名,结果,我在main方法里调用,学生姓名列表根本没有被修改。但是,单独运行这个方法倒是可以的。
public class Execute {
public static void main(String[] args){//返回需要修改的名字的个数
Services services = new Services();
String oldName ="jerry";
String newName = "anna";
LinkedList<String> inputNames = new LinkedList<String>();
inputNames.add("tom");
inputNames.add("jerry");
inputNames.add("jenny");
inputNames.add("jerry");
inputNames.add("will");
services.editName(oldName,newName);
System.out.println(inputNames);
}
}
不知道原因何在? 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询