java arraylist string_在Java ArrayList String中使用contains
你是对的。 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相关推荐
- java 参数 string_关于Java中String类型的参数传递问题
先把几个知识点列出来: 值传递: 当基本类型作为参数传入方法时,无论该参数在方法内怎样被改变,外部的变量原型总是不变的. 引用传递: 当方法传入的参数为引用数据类型(类.接口.数组)时,方法改变参数变 ...
- java 键入_在Java中键入Safe SQL
java 键入 字符串,字符串,字符串 无论您使用的是JPA , MyBatis还是Spring Data JDBC之类的框架,总会最终将SQL语句声明为Java String. 这种方法的问题在于, ...
- java集合对象排序_java ArrayList集合中的某个对象属性进行排序的实现代码
开发中有时候需要自己封装分页排序时,List如何对某一属性排序呢,分享一个小实例,大家共勉,希望能对大家有用,请多多指教. 1.Student的Bean如下: public class Student ...
- Java根据txt文件数据得到list_java中如何将一个txt文件中的数字读取到一个ArrayList集合中?...
展开全部 import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java ...
- java 释放数组_java集合ArrayList中clear方法内存释放分析
最近在看ArrayList源码的时候看到了ArrayList的clear方法,源码如下: public void clear() { modCount++; // clear to let GC do ...
- arraylist下标从几开始_剖析JAVA面试题 手写ArrayList的实现,在笔试中过关斩将?...
面试官Q1:可以手写一个ArrayList的简单实现吗? 我们都知道ArrayList是基于数组实现,如果让你实现JDK源码ArrayList中add().remove().get()方法,你知道如何 ...
- ArrayList Iterator remove java.lang.UnsupportedOperationException
在使用Arrays.asList()后调用add,remove这些method时出现 java.lang.UnsupportedOperationException异常.这是由于Arrays.asLi ...
- Java HashMap、Hashset、ArrayList和函数间调用的练习
P1.编写如下程序. 给定两个集合A和B,分别求AUB,A∩B,A-B的值. package test; import java.util.*; //P1.编写如下程序. //给定两个集合A和B,分别 ...
- java源码分析之ArrayList
ArrayList就是传说中的动态数组,就是Array的复杂版本,它提供了如下一些好处:动态的增加和减少元素.灵活的设置数组的大小...... 认真阅读本文,我相信一定会对你有帮助.比如为什么Arra ...
最新文章
- python中星号怎么打出来_Python打印“菱形”星号代码方法
- eclipse打开处于无响应状态解决办法
- c语言答案填空选择,C语言试题配答案
- 使用curl从HTTP POST仅获取响应标头
- 用Python轻松开发数据库取数下载工具
- pthread 立即停止线程_pthread线程的终止退出 | 线程的大量创建
- Valgrind快速入门指南
- html5支持多中浏览器写法,html5及css3对table表格高亮当前行列的多浏览器兼容写法...
- 【华为云技术分享】华为云HiLens全面升级,端云协同多模态AI应用开发利器
- 解决IOS中input失焦后,页面上移,点击不了问题
- py樱花代码_武汉大学生用代码敲出樱花绽放,这个开源项目也很酷炫
- .NET图表控件TeeChart Pro ActiveX使用教程:轴控制
- Computer Networking——network layer QA
- 深圳Java培训机构排名榜单:动力节点上榜,第一名耳熟能详
- springboot基于web的摩托车销售系统的设计与实现毕业设计源码031706
- PWM控制的基本原理
- 优维低代码:Pipes 管道
- Linux底层IIC 总线的理解、调用函数以及常见面试问题
- dubbo问题:forbid consumer报错
- zabbix mysql trapper_zabbix的trapper(补获器)使用