搜索数组列表,很难

时间:2017-12-03 02:37:13

标签: java

我这里有一个方法,它的工作是接收3个数组列表,然后返回一个值。

3个ARRRAY LIST特定工作

  1. 用户提交的名称
  2. 这是一个有我所有名字的arraylist,这些是玩家名字
  3. 对于每个名字,我给出了一个特定的值。我使用它来交叉引用我的位置和我指定名称的值
  4. 我知道第三个可能会让人难以理解,所以不好尝试分解一下。所以说有人输入一个名字,我在我的播放器名称中查找该名称,一旦找到该位置,我就可以从playerNumber访问该玩家排名。因为我将名字放在一个列表中,而将数字放在另一个列表中。位置匹配两个列表中的名称和数字

    我的问题是我一直得到0,这是我的结果。我不知道为什么,请告知:<

    ** unrealated:**为什么我使用arraylists的原因是因为这是我在java中学到的。随着时间的推移,我将学习新的主题,我只是尽我所能利用我的技能做一个有趣的项目。很抱歉,如果它真的很棒,这是我现在能做的最好的

    public static int meth(List names, List searchingLis, List nameNumber){
          int totalGive=0;
    
          int totalRecieve=0;
    
          int sizer=names.size()-1;
    
           int ret=-1000;
    
           int makeSureAllPlayerAdded=sizer;
    
           int returningValue=0;
           do{
    
          for(int i=0;i<names.size();i++){
    
    
          int currenSearchRanking=(int) nameNumber.get(i);
    
    
    
          if(names.get(i).equals(searchingLis.get(i))){
    
    
    
          int valueToLookUpInNames=i;
          int AddingValue=(int) nameNumber.get(valueToLookUpInNames);
          returningValue=returningValue+AddingValue;
    
          System.out.println(returningValue+"ret vales");
    
    
    
    makeSureAllPlayerAdded--;
          }
    
          }
    
          return returningValue;
           }while(makeSureAllPlayerAdded<=0);
        }
    

1 个答案:

答案 0 :(得分:0)

我知道您说searchingLisnameNumber具有有效代表行的匹配位置,names只是用户提供的不匹配名称的任意列表。

然后,你最致命的缺陷就在if(names.get(i).equals(searchingLis.get(i))){行。

在其中,如果names处于同一位置,您只会看到来自searchingLis的匹配。所以,如果searchingList持有[“John”,“Mary”]和names持有[“Mary”],那么就没有匹配,因为你只看到searchingList成员位置0,而不是将searchingList的每个成员与每个名称进行比较。