Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查我的列表是否已包含某个字符串。Java Android SDK_Java_Android_List - Fatal编程技术网

如何检查我的列表是否已包含某个字符串。Java Android SDK

如何检查我的列表是否已包含某个字符串。Java Android SDK,java,android,list,Java,Android,List,我有一份清单: List<String> oldfavs = new ArrayList<String>(); 在哪里 我希望能够检查我要添加的字符串是否已经在列表中,如果它在我不想添加的列表中: 以下是我目前拥有的: public void SaveInsult(View view) { String saved = insult.getText().toString(); if (oldfavs.contains(saved)) {

我有一份清单:

List<String> oldfavs = new ArrayList<String>();
在哪里

我希望能够检查我要添加的字符串是否已经在列表中,如果它在我不想添加的列表中:

以下是我目前拥有的:

public void SaveInsult(View view) {
    String saved = insult.getText().toString();
        if (oldfavs.contains(saved)) {
            Toast.makeText(getApplicationContext(), R.string.alreadyinfavs, Toast.LENGTH_SHORT).show();
        }
        else {
            int listSize = oldfavs.size();
            for (int i = 0; i < listSize; ++i)
            oldfavs.add(saved);
            Toast.makeText(getApplicationContext(), R.string.addedfavs, Toast.LENGTH_SHORT).show();
        }
}
public void保存(视图){
保存的字符串=侮辱.getText().toString();
如果(旧版本包含(已保存)){
Toast.makeText(getApplicationContext(),R.string.alreadyinfavs,Toast.LENGTH_SHORT).show();
}
否则{
int listSize=oldfavs.size();
对于(int i=0;i

然而,此时字符串总是被添加,即使该字符串已经在列表中,我也无法找出出错的原因或位置

使用
集合
而不是
列表
,因为集合不包含重复项,所以您不需要执行任何重复项检查:

List<String> oldfavsList = new ArrayList<String>(); // Allows duplicates when added
Set<String>  oldfavsSet  = new HashSet<String>();   // Duplicates are ignored when added
List oldfavsList=new ArrayList();//添加时允许重复
Set oldfavset=新HashSet();//添加时将忽略重复项

使用
集合
而不是
列表
,因为集合不包含重复项,所以您不需要执行任何重复项检查:

List<String> oldfavsList = new ArrayList<String>(); // Allows duplicates when added
Set<String>  oldfavsSet  = new HashSet<String>();   // Duplicates are ignored when added
List oldfavsList=new ArrayList();//添加时允许重复
Set oldfavset=新HashSet();//添加时将忽略重复项

使用
集合
而不是
列表
,因为集合不包含重复项,所以您不需要执行任何重复项检查:

List<String> oldfavsList = new ArrayList<String>(); // Allows duplicates when added
Set<String>  oldfavsSet  = new HashSet<String>();   // Duplicates are ignored when added
List oldfavsList=new ArrayList();//添加时允许重复
Set oldfavset=新HashSet();//添加时将忽略重复项

使用
集合
而不是
列表
,因为集合不包含重复项,所以您不需要执行任何重复项检查:

List<String> oldfavsList = new ArrayList<String>(); // Allows duplicates when added
Set<String>  oldfavsSet  = new HashSet<String>();   // Duplicates are ignored when added
List oldfavsList=new ArrayList();//添加时允许重复
Set oldfavset=新HashSet();//添加时将忽略重复项

假设
侮辱
oldfavs
有效,并且您只想在字符串不在列表中时添加该字符串,并且…执行
Toast.makeText(…)
所做的任何操作。如果字符串不在列表中,则以下修改应解决您的问题

public void SaveInsult(View view) {
    String saved = insult.getText().toString();
        if (oldfavs.contains(saved)) {
            Toast.makeText(getApplicationContext(), R.string.alreadyinfavs, Toast.LENGTH_SHORT).show();
        }else {
            oldfavs.add(saved);
            Toast.makeText(getApplicationContext(), R.string.addedfavs, Toast.LENGTH_SHORT).show();
        }
}

假设
侮辱
oldfavs
是有效的,并且您只想在字符串不在列表中时添加该字符串,并且…执行
Toast.makeText(…)
执行的任何操作,如果字符串不在列表中,则以下修改应该可以解决您的问题

public void SaveInsult(View view) {
    String saved = insult.getText().toString();
        if (oldfavs.contains(saved)) {
            Toast.makeText(getApplicationContext(), R.string.alreadyinfavs, Toast.LENGTH_SHORT).show();
        }else {
            oldfavs.add(saved);
            Toast.makeText(getApplicationContext(), R.string.addedfavs, Toast.LENGTH_SHORT).show();
        }
}

假设
侮辱
oldfavs
是有效的,并且您只想在字符串不在列表中时添加该字符串,并且…执行
Toast.makeText(…)
执行的任何操作,如果字符串不在列表中,则以下修改应该可以解决您的问题

public void SaveInsult(View view) {
    String saved = insult.getText().toString();
        if (oldfavs.contains(saved)) {
            Toast.makeText(getApplicationContext(), R.string.alreadyinfavs, Toast.LENGTH_SHORT).show();
        }else {
            oldfavs.add(saved);
            Toast.makeText(getApplicationContext(), R.string.addedfavs, Toast.LENGTH_SHORT).show();
        }
}

假设
侮辱
oldfavs
是有效的,并且您只想在字符串不在列表中时添加该字符串,并且…执行
Toast.makeText(…)
执行的任何操作,如果字符串不在列表中,则以下修改应该可以解决您的问题

public void SaveInsult(View view) {
    String saved = insult.getText().toString();
        if (oldfavs.contains(saved)) {
            Toast.makeText(getApplicationContext(), R.string.alreadyinfavs, Toast.LENGTH_SHORT).show();
        }else {
            oldfavs.add(saved);
            Toast.makeText(getApplicationContext(), R.string.addedfavs, Toast.LENGTH_SHORT).show();
        }
}
据我所知,contains()将检查传递的对象实例是否已在数组中

问题是您正在创建一个新的字符串实例,因此它与数组中存储的字符串不匹配

如果我错了,请有人纠正我

解决方案:

您可以创建for循环并使用String.compareTo()查找匹配的字符串

示例代码:

for(int c=0;c<oldfavs.size();c++)
{
    if(oldfavs.get(c).compareTo(saved)==0)
    {
        Toast.makeText(getApplicationContext(), R.string.alreadyinfavs, Toast.LENGTH_SHORT).show();
    }else{
        Toast.makeText(getApplicationContext(), R.string.addedfavs, Toast.LENGTH_SHORT).show();
    }
}
据我所知,contains()将检查传递的对象实例是否已经在数组中

问题是您正在创建一个新的字符串实例,因此它与数组中存储的字符串不匹配

如果我错了,请有人纠正我

解决方案:

您可以创建for循环并使用String.compareTo()查找匹配的字符串

示例代码:

for(int c=0;c<oldfavs.size();c++)
{
    if(oldfavs.get(c).compareTo(saved)==0)
    {
        Toast.makeText(getApplicationContext(), R.string.alreadyinfavs, Toast.LENGTH_SHORT).show();
    }else{
        Toast.makeText(getApplicationContext(), R.string.addedfavs, Toast.LENGTH_SHORT).show();
    }
}
据我所知,contains()将检查传递的对象实例是否已经在数组中

问题是您正在创建一个新的字符串实例,因此它与数组中存储的字符串不匹配

如果我错了,请有人纠正我

解决方案:

您可以创建for循环并使用String.compareTo()查找匹配的字符串

示例代码:

for(int c=0;c<oldfavs.size();c++)
{
    if(oldfavs.get(c).compareTo(saved)==0)
    {
        Toast.makeText(getApplicationContext(), R.string.alreadyinfavs, Toast.LENGTH_SHORT).show();
    }else{
        Toast.makeText(getApplicationContext(), R.string.addedfavs, Toast.LENGTH_SHORT).show();
    }
}
据我所知,contains()将检查传递的对象实例是否已经在数组中

问题是您正在创建一个新的字符串实例,因此它与数组中存储的字符串不匹配

如果我错了,请有人纠正我

解决方案:

您可以创建for循环并使用String.compareTo()查找匹配的字符串

示例代码:

for(int c=0;c<oldfavs.size();c++)
{
    if(oldfavs.get(c).compareTo(saved)==0)
    {
        Toast.makeText(getApplicationContext(), R.string.alreadyinfavs, Toast.LENGTH_SHORT).show();
    }else{
        Toast.makeText(getApplicationContext(), R.string.addedfavs, Toast.LENGTH_SHORT).show();
    }
}

for(int c=0;c您可以编写自己的函数来检查列表是否包含特定字符串

请遵循以下代码:

public void SaveInsult(View view) {
     String saved = insult.getText().toString();
    if (hasString(oldfavs )) {
        Toast.makeText(getApplicationContext(), R.string.alreadyinfavs, Toast.LENGTH_SHORT).show();
    }
    else {
        int listSize = oldfavs.size();
        for (int i = 0; i < listSize; ++i)
        oldfavs.add(saved);
        Toast.makeText(getApplicationContext(), R.string.addedfavs, Toast.LENGTH_SHORT).show();
    }}
public void保存(视图){
保存的字符串=侮辱.getText().toString();
if(hastring(oldfavs)){
Toast.makeText(getApplicationContext(),R.string.alreadyinfavs,Toast.LENGTH_SHORT).show();
}
否则{
int listSize=oldfavs.size();
对于(int i=0;i
功能:

public boolean hasString(List<String> list){

    boolean isPresent = false;
    for (int i=0; i<list.size(); i++){

        if(list.get(i).equals("Your String")){
            isPresent = true;
        }
    }

    return isPresent;
}
public boolean hastring(列表){
布尔值isPresent=false;

对于(inti=0;i,您可以编写自己的函数来检查列表是否包含特定字符串

请遵循以下代码:

public void SaveInsult(View view) {
     String saved = insult.getText().toString();
    if (hasString(oldfavs )) {
        Toast.makeText(getApplicationContext(), R.string.alreadyinfavs, Toast.LENGTH_SHORT).show();
    }
    else {
        int listSize = oldfavs.size();
        for (int i = 0; i < listSize; ++i)
        oldfavs.add(saved);
        Toast.makeText(getApplicationContext(), R.string.addedfavs, Toast.LENGTH_SHORT).show();
    }}
public void保存(视图){
保存的字符串=侮辱.getText().toString();
if(hastring(oldfavs)){
Toast.makeText(getApplicationContext(),R.string.alreadyinfavs,Toast.LENGTH\u SHORT)。显示(