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(); }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/459101.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Xcode7,ios9 issue ,warning合集

1.Downcast from UIViewController only unwraps optionals;did you mean to use!? 原: let view mainStory.instantiateInitialViewController() as! UIViewController window?.rootViewController view 修改: if let view mainStory.instantiate…

高中数学排列组合公式/排列组合计算公式

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** 排列 P------和顺序有关 组合 C -------不牵涉到顺序的问题 排列分顺序,组合不分 例如…

矩阵快速幂 POJ 3070 Fibonacci

题目传送门 1 /*2 矩阵快速幂&#xff1a;求第n项的Fibonacci数&#xff0c;转置矩阵都给出&#xff0c;套个模板就可以了。效率很高啊3 */4 #include <cstdio>5 #include <algorithm>6 #include <cstring>7 #include <cmath>8 using namespace st…

java 接口和抽象类的区别6_JAVA基础篇-接口和抽象类的区别

.前言JAVA是一种面向对象语言,具备抽象(Abstract),封装(packing),继承(extends),多态(polymorphic)四大特性。我们重点从oop思想∠来分析。.在面向对象的四大特性的作用体现抽象:父类为子类提供一些属性和行为&#xff0c;子类根据业务需求实现具体的行为(这时抽象类派上了用场…

笔试常见的智力题(附答案)

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** A.逻辑推理 1、你让工人为你工作7天&#xff0c;给工人的回报是一根金条。金条…

Compile a native C Android application

2019独角兽企业重金招聘Python工程师标准>>> http://www.cnblogs.com/GoAhead/p/4186707.html 通过上网搜索&#xff0c;你可以发现很多种编译Android native应用的方法&#xff0e;我想说的是&#xff0c;不同的控制台应用, 守护程序(daemon), C/C库&#xff0c;等…

could not build module ‘Foundation’, could not build module ‘UIKit’……23个错误

pch文件加入 #import <Availability.h> #ifndef __IPHONE_3_0 #warning "This project uses features only available in iOS SDK 3.0 and later." #endif #ifdef __OBJC__ #import <UIKit/UIKit.h> #import <Foundation/Foundation.h> 转载于:htt…

java中钩子函数回调函数_钩子函数 和回调函数

标签&#xff1a;http://blog.csdn.net/lipeionline/article/details/6369657 转自也可以这样&#xff0c;更容易理解&#xff1a;回调函数就好像是一个中断处理函数&#xff0c;系统在符合你设定的条件时自动调用。为此&#xff0c;你需要做三件事&#xff1a;1. 声明&…

css3 定义选择器

引言&#xff1a;CSS样式规则有两个主要部分。选择器决定将格式化应用到哪些元素。声明则定义要应用的格式化。 构造选择器选择器可以定义五个不同的标准来选择要进行格式化的元素。 元素的类型或者名称。如下所示。 h1{color:red; } 元素所在的上下文。如下所示。 h1 em{color…

J2SE核心实战开发—— 集合类框架

文档都是基于 实验楼 线上环境制作的&#xff0c;因此文档叙述和截图均与其有关。使用其他实验环境也没有太大影响&#xff0c;知识点的操作是类似的。该系列的课程是在 实验楼 实习所原创的第一个课程&#xff0c;欢迎大家多提意见。 一、实验简介 在Java基础语法中&#xff0…

猫和老鼠java下载安装_tomcat(Java服务器)

Tomcat(Java服务器工具)是一款十分优质的Java服务器软件。在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发和调试JSP 程序的首选。对于一个初学者来说&#xff0c;可以这样认为&#xff0c;当在一台机器上配置好Apache 服务器&#xff0c;可利用它响应…

管道通信

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** 什么是管道&#xff1f; 管道是单向的、先进先出的&#xff0c;它把一个进程的输出和另…

Linux 终端下 dstat 监控工具

dstat 是一个可以取代vmstat&#xff0c;iostat&#xff0c;netstat和ifstat这些命令的多功能产品。dstat克服了这些命令的局限并增加了一些另外的功能&#xff0c;增加了监控项&#xff0c;也变得更灵活了。dstat可以很方便监控系统运行状况并用于基准测试和排除故障。dstat可…

运用HTML5+CSS3和CSS滤镜做的精美的登录界面

原始出处http://chenjinfei.blog.51cto.com/2965201/774865<!DOCTYPE HTML> <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetgb2312"> <meta http-equiv"description" content"运用C…

MyEclipse使用总结——MyEclipse文件查找技巧 ctrl+shift+R ctrl+H

一、查找文件 使用快捷键【ctrlshiftR】弹出弹出文件查找框&#xff0c;如下图所示&#xff1a; 二、查找包含某个字符串的文件 使用快捷键【ctrlH】在弹出对话框中选File Search选项&#xff0c;然后在第一个文本框中粘贴&#xff08;我一般用粘贴&#xff09;或自已手动录入&…

java实现控件绑定数据源_控件(三)——TreeView控件以XmlDataSource控件为数据源实现简单的绑定...

TreeView控件功能非常强大&#xff0c;今天&#xff0c;我们只是窥其一角。我们实现的例子是&#xff1a;TreeView控件与XmlDataSource控件绑定&#xff0c;然后在网页显示选中项。首先我们添加一个xml&#xff0c;取名为tv.xml。在其中写上如下代码&#xff1a;这时我们在defa…

手机屏幕原理和设计(触摸屏幕)

//本文参考了很多百度百科的知识  随着android手机的流行&#xff0c;手机触摸屏成为一个时尚。再购机的时候&#xff0c;就会有很多人去问手机的触屏是电阻式的还是电容式的呢&#xff1f;但是其实很多人应该是不知道个中的原委的。只是一个感觉电容式的一定要比电阻式的好。…

extjs5(05--主界面上加入顶部和底部区域)

这一节为主界面加一个顶部区域和底部区域。一个管理系统的界面可以粗分为顶部标题部分、中间数据展示和处理的部分、底部备注和状态部分。 在增加这二个区域之前&#xff0c;我们先在MainModel.js中加入一些数据。 1 Ext.define(app.view.main.MainModel, {2 extend: Ext.a…

java mongo 查询数组_MongoDB查询(数组、内嵌文档)

一、简介我们上一篇介绍了db.collection.find()可以实现根据条件查询和指定使用投影运算符返回的字段省略此参数返回匹配文档中的所有字段&#xff0c;我们今天介绍了对数组和内嵌文档的查询操作&#xff0c;尤其是对$elemMatch 同样可以用在find方法的第二个参数来限制返回数组…

手机触摸屏的分类和原理,供大家选择手机时用

转载自&#xff1a;http://www.51testing.com/?uid-144635-action-viewspace-itemid-216296 必大家很关心的一个问题就是手机的触摸屏寿命是多少吧&#xff01;还有就是到底是电阻式触摸屏&#xff08;诺基亚的&#xff09;好还是电容式触摸屏&#xff08;iPhone等&#xff09…