2015-02-11 104 views
0

我目前遇到问题从阵列中拔出一定的价值,因为它代表我的数组代码如下:我如何获得价值从一个数组的java

private List<FootballPlayer> getData() { 

    List<FootballPlayer> theData = new ArrayList<FootballPlayer>(); 

    // create a Scanner and grab the data . . . 

    Scanner scanner = null; 

    String dataPath = dbLocation + File.separator + "text" + File.separator + "players.db"; 

    String imagePath = dbLocation + File.separator + "images"; 

    try { 

     scanner = new Scanner(new File(dataPath)); 

    } catch (FileNotFoundException fnf) { 

     System.out.println(fnf.getMessage()); 


     System.exit(0); 
    } 

    // scan player.db file line-by-line 

    scanner.useDelimiter("\n"); 

    while (scanner.hasNext()) { 

     String line = scanner.next().trim(); 

     // trim used to trim for new line 

     String[] bits = line.split(":"); 

     String t = bits[0];     // title 
     String imgFileName = bits[1];   // image file name 
     int pa = Integer.parseInt(bits[2]);  // pace 
     int sh = Integer.parseInt(bits[3]);  // shooting 
     int dr = Integer.parseInt(bits[4]); // dribbling 
     int ph = Integer.parseInt(bits[5]); // physical 

     // create the image 

     ImageIcon img = new ImageIcon(imagePath + File.separator + imgFileName); 

     // Create the business object 

     FootballPlayer player = new FootballPlayer(t, img, pa, sh, dr, ph); 

     // add it to the list ... simple as ... 

     theData.add(player); 
    } 

    scanner.close(); 

    return theData; 

} 

从这样players.db文件:

Pique:DFPique.png:66:60:54:76 
Ramos:DFRamos.png:79:66:60:82 
Maldini:LEGMaldini.png:86:67:56:80 
Pele:LEGPele.png:95:94:89:73 
DiMaria:MFDiMaria.png:90:87:79:71 
Neymar:MFNeymar.png:90:92:80:58 
Berahino:STBerahino.png:81:70:69:55 
Ronaldo:STRonaldo.png:98:99:99:89 

我不确定如何从另一个类中的数组中拉出图像路径(.png),例如,如果选择了Ramos。任何帮助将不胜感激

+0

我不完全相信你的问题是什么。你想知道如何获得具有给定球员名字的特定FootballPlayer对象吗?或者是有关访问FootballPlayer对象内部图像的问题? – cangoektas 2015-02-11 23:52:48

+1

如果您想在另一个类中使用'theData'ArrayList,请将'getData()'方法公开。然后从任何其他类中调用该方法,并通过'theData'引用循环以获取值。 – Prudhvi 2015-02-11 23:53:45

+0

@prudhvi然后它会在每次需要数据时打开和解析文件,当时(大概)只需要进行一次 – 2015-02-12 00:19:59

回答

0

第一:这不是一个数组,而是一个列表。

二:你可能需要查找方法:

public FootballPlayer findPlayerByName(List<FootballPlayer> players, String name) { 
    for (FootballPlayer player: players) { 
    if (player.getName().equals(name)) { 
     return player; 
    } 
    } 
    return null; 
}