你是对的。 ArrayList.contains()testingequals(),而不是对象标识:

返回true当且仅当此列表包含至less一个元素e,使得(o == null?e == null:o.equals(e))

如果你有一个NullPointerExceptionexception,请validation你是否在构造函数或声明中初始化了你的列表。 例如:

private List rssFeedURLs = new ArrayList();

是的,这应该适用于string, 但如果你担心重复使用Set 。 这个集合可以防止重复而不必做任何事情。 一个HashSet可以使用,但它是无序的,所以如果你想保持插入顺序你使用LinkedHashSet 。

你是对的,它应该工作; 也许你忘了实例化一些东西。 你的代码看起来像这样吗?

String rssFeedURL = "http://stackoverflow.com"; this.rssFeedURLS = new ArrayList(); this.rssFeedURLS.add(rssFeedURL); if(this.rssFeedURLs.contains(rssFeedURL)) { // this code will execute }

作为参考,请注意以下条件也将执行如果您将此代码附加到上面:

String copyURL = new String(rssFeedURL); if(this.rssFeedURLs.contains(copyURL)) { // code will still execute because contains() checks equals() }

即使(rssFeedURL == copyURL)为false,rssFeedURL.equals(copyURL)也是如此。 包含方法关心equals方法。

也许你需要发布导致你的exception的代码。 如果以上是你所有的,也许你只是没有实际初始化数组。

使用包含在这里应该虽然工作。

你的问题不是很清楚。

你的代码到底在做什么? 给更多的代码。

你得到的错误是什么?

你说你得到一个空指针。 你不能得到一个空指针作为由contains()返回的值。

但是,如果您的列表尚未初始化,则可能会发生NullPointerException 。 现在通过阅读你的问题,我会说,你在这里显示的是正确的,但也许你没有实例化列表。

要做到这一点(要添加一个提要的URL,如果它不在列表中):

if (!this.rssFeedURLs.contains(rssFeedURL)) { this.rssFeedURLs.add(rssFeedUrl); }

那么这个声明会做:

private ArrayList rssFeedURLs = new ArrayList();

或者稍后初始化您的列表,但在尝试访问其方法之前:

rssFeedUrls = new ArrayList();

最后…你真的需要一个List吗? 如果你不想重复,也许会更好。 如果保留sorting事项,请使用LinkedHashSet 。

正确…用string…当你偏离原语或string的时候事情就会改变,你需要实现hashcode / equals来获得所需的效果。

编辑:初始化您的ArrayList然后尝试添加一个项目。

你是对的 正如别人根据你的意见说,你可能没有初始化你的ArrayList。

我的观点是不同的:你声称你正在检查重复,这就是为什么你调用contains方法。 尝试使用HashSet 。 它应该更有效率 – 除非您需要保持URL的顺序出于任何原因。

感谢大家回答如此之快。 我总是可以使用一个集合,但我现在有ArrayList的工作。 问题是,在包含ArrayList的类的构造函数中,我没有说:

public RSS_Feed_Miner() { ... this.rssFeedURLs = new ArrayList(); ... }

D'哦! 星期五下午。

ArrayList newlyAddedTypes=new ArrayList(); ..... newlyAddedTypes.add("test1"); newlyAddedTypes.add("test1"); newlyAddedTypes.add("test2"); if(newlyAddedTypes.contain("test"){ //called here } else{ }

在下面的代码中,我们将任务填充为arraylist,retrieveTaskidForDelete作为我们在任务填充的arraylist中添加值的方法,checkid是String.we需要检查string值是否包含在arraylist中。

String checkid; ArrayList taskfilled=retrieveTaskidForDelete(); if(!taskfilled.contains(checkid)) { Toast.makeText(getContext(),"Yepiee Bingo"+ti.get(a),Toast.LENGTH_SHORT).show(); }

java arraylist string_在Java ArrayList String中使用contains相关推荐

  1. java 参数 string_关于Java中String类型的参数传递问题

    先把几个知识点列出来: 值传递: 当基本类型作为参数传入方法时,无论该参数在方法内怎样被改变,外部的变量原型总是不变的. 引用传递: 当方法传入的参数为引用数据类型(类.接口.数组)时,方法改变参数变 ...

  2. java 键入_在Java中键入Safe SQL

    java 键入 字符串,字符串,字符串 无论您使用的是JPA , MyBatis还是Spring Data JDBC之类的框架,总会最终将SQL语句声明为Java String. 这种方法的问题在于, ...

  3. java集合对象排序_java ArrayList集合中的某个对象属性进行排序的实现代码

    开发中有时候需要自己封装分页排序时,List如何对某一属性排序呢,分享一个小实例,大家共勉,希望能对大家有用,请多多指教. 1.Student的Bean如下: public class Student ...

  4. Java根据txt文件数据得到list_java中如何将一个txt文件中的数字读取到一个ArrayList集合中?...

    展开全部 import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java ...

  5. java 释放数组_java集合ArrayList中clear方法内存释放分析

    最近在看ArrayList源码的时候看到了ArrayList的clear方法,源码如下: public void clear() { modCount++; // clear to let GC do ...

  6. arraylist下标从几开始_剖析JAVA面试题 手写ArrayList的实现,在笔试中过关斩将?...

    面试官Q1:可以手写一个ArrayList的简单实现吗? 我们都知道ArrayList是基于数组实现,如果让你实现JDK源码ArrayList中add().remove().get()方法,你知道如何 ...

  7. ArrayList Iterator remove java.lang.UnsupportedOperationException

    在使用Arrays.asList()后调用add,remove这些method时出现 java.lang.UnsupportedOperationException异常.这是由于Arrays.asLi ...

  8. Java HashMap、Hashset、ArrayList和函数间调用的练习

    P1.编写如下程序. 给定两个集合A和B,分别求AUB,A∩B,A-B的值. package test; import java.util.*; //P1.编写如下程序. //给定两个集合A和B,分别 ...

  9. java源码分析之ArrayList

    ArrayList就是传说中的动态数组,就是Array的复杂版本,它提供了如下一些好处:动态的增加和减少元素.灵活的设置数组的大小...... 认真阅读本文,我相信一定会对你有帮助.比如为什么Arra ...

最新文章

  1. python中星号怎么打出来_Python打印“菱形”星号代码方法
  2. eclipse打开处于无响应状态解决办法
  3. c语言答案填空选择,C语言试题配答案
  4. 使用curl从HTTP POST仅获取响应标头
  5. 用Python轻松开发数据库取数下载工具
  6. pthread 立即停止线程_pthread线程的终止退出 | 线程的大量创建
  7. Valgrind快速入门指南
  8. html5支持多中浏览器写法,html5及css3对table表格高亮当前行列的多浏览器兼容写法...
  9. 【华为云技术分享】华为云HiLens全面升级,端云协同多模态AI应用开发利器
  10. 解决IOS中input失焦后,页面上移,点击不了问题
  11. py樱花代码_武汉大学生用代码敲出樱花绽放,这个开源项目也很酷炫
  12. .NET图表控件TeeChart Pro ActiveX使用教程:轴控制
  13. Computer Networking——network layer QA
  14. 深圳Java培训机构排名榜单:动力节点上榜,第一名耳熟能详
  15. springboot基于web的摩托车销售系统的设计与实现毕业设计源码031706
  16. PWM控制的基本原理
  17. 优维低代码:Pipes 管道
  18. Linux底层IIC 总线的理解、调用函数以及常见面试问题
  19. dubbo问题:forbid consumer报错
  20. zabbix mysql trapper_zabbix的trapper(补获器)使用

热门文章

  1. FreeSql (十)更新数据
  2. H3C 以太网集线器
  3. java常用简略语含义
  4. [原][歌曲]感动的歌曲排序
  5. 舒适的路线(codevs 1001)
  6. PHP 如何判断当前用户已在别处登录
  7. 用JSmooth制作java jar文件的可运行exe文件教程【图文】
  8. LAMP 系统性能调优,第 3 部分: MySQL 服务器调优(转)
  9. DataGrid 完全攻略之四 (实现统计)
  10. Check Point CEO:“我们正在积极寻找收购目标”