ArrayList复制值而不是添加new

时间:2016-04-27 20:43:37

标签: java android arraylist

我的问题是奇娜很奇怪。我正在制作一个应用程序,用于在学校中找到不同的房间。我想在ArrayList中保存最近的五个搜索并相应地显示它们。

发生的事情是我的ArrayList应该添加对ArrayList的最新搜索。但它一直在做的是将最新的搜索添加到所有具有值的位置。

This is how is looks but is not how I want it, obviously!

这是添加搜索的方法。

public void addPreviousSearch(String[] searchInput, int[] dotPosition) {
    String mapDir = searchInput[0] + ":" + searchInput[2] + ".png";
    Search temp = new Search(searchInput, dotPosition, mapDir);
    Log.d("PREV", mapDir + " " + searchInput[2]);

    previousSearchList.add(0,temp);

    for (Search s : previousSearchList) {
        Log.d("PREV", s.getSearchQuery());
    }

    if (previousSearchList.size() > 5) {
        Log.d("EVAL", previousSearchList.remove(5).toString());
    }
}

这是ArrayList包含的类。

public class Search {
private String[] search;
private int[] dotPosition;
private String mapDicrectory;

public Search(String[] search, int[] dotPosition,String mapDirectory) {
    this.search = search;
    this.dotPosition = dotPosition;
    this.mapDicrectory = mapDirectory;
}

public String[] getSearch() {
    return search;
}

public int[] getDotPosition() {
    return dotPosition;
}

public String getMapDirectory() {
    return mapDicrectory;
}

/**
 * Returns a string formated to display the seach
 * @return String with suitable format
 */
public String getSearchQuery(){
    if(search!=null)
        return search[0] + ":" + search[1] + search[2] + search[3];
    else
        return " ";
}

我很感激任何意见!

干杯!

更新:为了澄清,ArrayList第一次显示正确的数字,其余四个是空白。在第二次搜索时,ArrayList显示正确的数字,但将之前的数字更改为与新的数字相同。

更新II:通过在每次搜索时创建一个新的String []来实现它!

0 个答案:

没有答案