精华内容
下载资源
问答
  • 重写Java contains函数

    2020-05-24 10:42:04
    public static boolean iscontain(String s, String t) { char[] array1 = s.toCharArray(); char[] array2 = t.toCharArray(); boolean status = false; if(array2.length < array1.length) { ...

    public static boolean iscontain(String s, String t) {

        char[] array1 = s.toCharArray();
        char[] array2 = t.toCharArray();
        boolean status = false;
    
        if(array2.length < array1.length) {
        	for(int i=0; i<array1.length; i++){
        		if (array1[i] == array2[0] && i+array2.length-1<array1.length) {
        			int j = 0;
        			while(j<array2.length)
        			{
        				if (array1[i+j] == array2[j]) 
        				{
        					j++;
        				}
        				else
        					break;
        			}
        			if (j==array2.length) 
        			{
        				status = true;
        				break;
        			}
        		}
    
        	}
        }
        return status;
    }
    
    展开全文
  • Java中容器的contains函数与自定义类

    千次阅读 2018-03-23 22:06:06
    自定义类的容器的contains函数需要重载equals函数,格式需要@Override和equals的参数列表中应该是Object类的。具体分析过程在完成mit实验作业的时候,add函数需要遍历list 找寻相同的对象。 对Vertex类的equals函数...

    一句话博客
    自定义类的容器的contains函数需要重载equals函数,格式需要@Override和equals的参数列表中应该是Object类的。

    具体分析过程

    在完成mit实验作业的时候,add函数需要遍历list 找寻相同的对象。
    对Vertex类的equals函数定义如下:

    // methods
        public boolean equals(Vertex that) {
            return vertexName.equals(that.vertexName);
        }

    在添加add函数的时候,需要,判断是否已经存在。
    然而在调用contains函数的时候,Junit检测add函数出错。最后确定是contains函数判断的问题。
    然后放弃contains,遍历整个list,进行逐个的equals的检查,才通过了测试。
    埋下了这个坑,所以写这个博客为了填坑。。。

    关于Collections的contains函数的spec

    可以清楚的看到,他调用了equals函数,而我们之前写的equals函数本身是正确的,(如上)但并没有被contains调用。
    所以应当是override没有完成,添加了@Override函数之后,编译错误,只提示需要移除annotation就是@Override。
    一阵百度之后,看到一个在参数中,将类型变为Object类,然后在函数体内强制类型转换进行处理。

    然后contains函数终于好使了!相同的indexOf函数也好使了,赶紧回去修改所有的遍历。。代码变得更精简!

    展开全文
  • JAVAcontains函数的用法(字符)

    千次阅读 2019-08-26 23:33:04
    boolean contains(CharSequence s) :判断指定内容中是否包含括号中的内容; 一般推荐把常量字符串写在前面 , 变量写在后面.

    boolean contains(CharSequence s) :判断指定内容中是否包含括号中的内容;
    一般推荐把常量字符串写在前面 , 变量写在后面.

    展开全文
  • 慎用Java Collection的contains函数

    千次阅读 2019-05-11 15:54:08
    有些集合的原生函数不建议使用,比如Collections.contains/remove/Object.equals等。 改进一 @Component public class MyCollectionUtils<T> { public Boolean contained(Collection<T> collection, T ...

    背景

    最近碰到一个坑,看代码:

        @Test
        public void should_can_get_true_when_given_matched_type() {
            List<Integer> numberList = Lists.newArrayList(1, 2, 34, 4);
    
            Boolean contain = numberList.contains(2);
    
            assertThat(contain).isTrue();
        }
    
        @Test
        public void should_can_get_false_when_given_not_matched_type() {
            List<Integer> numberList = Lists.newArrayList(1, 2, 34, 4);
    
            Boolean contain = numberList.contains(2L);// List<Integer> 去判断 Long 类型元素
    
            assertThat(contain).isFalse();
        }

    这里更改了待判断参数类型,并不报错,只是返回 false。

    原因

    以ArrayList 为例,发现源码如下:

        public int indexOf(Object o) {
            if (o == null) {
                for (int i = 0; i < size; i++)
                    if (elementData[i]==null)
                        return i;
            } else {
                for (int i = 0; i < size; i++)
                    if (o.equals(elementData[i]))
                        return i;
            }
            return -1;
        }

    而对于包装类型,复写了equals方法

        public boolean equals(Object obj) {
            if (obj instanceof Integer) {
                return value == ((Integer)obj).intValue();
            }
            return false;
        }

    也就是说,对于同类型的对象,才去比较值来判断是否“相等”。

    改进


    有些集合的原生函数不建议使用,比如Collections.contains/remove/Object.equals等。


    改进一

    @Component
    public class MyCollectionUtils<T> {
        public Boolean contained(Collection<T> collection, T element) {
            return collection.contains(element);
        }
    }

    使用时,明确指定要检测的元素类型。

        @Autowired
        private MyCollectionUtils<Integer> myCollectionUtilsInteger;// 对集合和待检查元素都校验类型
        
        @Autowired
        private MyCollectionUtils<String> myCollectionUtilsString;
    
        @Test
        public void should_can_get() {
            Boolean result = myCollectionUtilsInteger.contained(Lists.newArrayList(1, 2, 34, 4), 2);
    
            assertThat(result).isTrue();
        }
    
        @Test
        public void should_can_get2() {
            Boolean result = myCollectionUtilsString.contained(Lists.newArrayList("2", "s", "s", "333"), "2");
    
            assertThat(result).isTrue();
        }

    每次根据需要注入不同类型的校验工具对象,检查性很强,不过这样做也有缺点,就是不同类型时,产生多个对象。

    改进二

    代码差不多,只不过只作为一个静态函数而已。

    public class MyCollectionUtils {
        public static <T> Boolean contains(Collection<T> collection, T element) {
            return collection.contains(element);
        }
    }

    使用时,如果类型不一致,编译报错。

        @Test
        public void should_compile_error_when_given_un_matched_type() {
            List<Integer> numberList = Lists.newArrayList(1, 2, 34, 4);
    
            // MyCollectionUtils.contains(numberList, 2L);
            // 类型不一致,直接编译错误
        }

     

    展开全文
  • apache有的包中替换函数也是用这个函数进行子串查找。我们分析一下参数。jdk注释如下:  * @param source the characters being searched.  * @param sourceOffset offset of the source string.  * @param ...
  • c语言实现Java语言中contains函数

    千次阅读 2013-11-08 23:25:11
    //function:judge how many subStrings does the original string contains int contains(const char *oriString ,const char *subString){  int count = 0,oriLen=0,subLen=0;  while(oriString[oriLen++]!...
  • 板子题poj2407 欧拉函数 Java实现

    千次阅读 2017-08-21 13:28:58
    提起欧拉函数我们先从一道问题说起 Description Given n, a positive integer, how many positive integers less than n are relatively prime to n? Two integers a and b are relatively prime if there are no ...
  • JSTL fn:contains()函数

    2017-09-30 09:57:00
    fn:contains() 函数判断一个输入字符串是否包含一个指定的子串。 语法 使用 fn:contains() 函数具有以下语法: boolean contains(java.lang.String, java.lang.String) 例子: 下面是例子来说明这个函数的功能:...
  • Java函数式编程详解

    万次阅读 多人点赞 2019-05-05 21:46:49
    Java从1.8以后引入了函数式编程,这是很大的一个改进。函数式编程的优点在提高编码的效率,增强代码的可读性。本文历时两个多月一点点写出来,即作为心得,亦作为交流。 1.Java函数式编程的语法: 使用Consumer...
  • java 集合类工具函数

    千次阅读 2015-04-03 12:57:45
    java 集合类工具函数
  • Java基础之函数式接口

    千次阅读 2020-04-11 16:05:19
    Java中的函数式编程体现就是Lambda,所以函数式接口就是可以适用于Lambda使用的接口,只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导. “语法糖”是指使用更加方便,但是原理不变的代码语法...
  • Java字符串contains()

    千次阅读 2020-07-06 09:04:52
    Java String contains() method is used to check if the string contains specified character sequence or not. Java String contains()方法用于检查字符串是否包含指定的字符序列。 Java字符串contains() ...
  • oracle contains函数 全文检索 分类: java学习积累 2008-11-18 20:50 1628人阅读 评论(1) 收藏 举报 全文检索oracle 1. 查询住址在北京的学生 SELECT student_id,student_name FROM students WHERE CONTAINS( ...
  • 在很多其他语言中,函数是一等公民。例如 JavaScript 中,函数(Function)和字符串(String)、数字(Number)、对象(Object)等一样是一种数据类型。可以这样定义函数: var myFunction = function () { ...
  • 本文转载自:...javacontains方法是判断是否存在包含关系,比如说a =[1,2,3,4], b=1那么a就包含b contains返回的是布尔类型true 和false,包含的话就返回true,不包含的话就返回false public...
  • java中的contains方法

    2017-03-27 11:52:30
    public boolean contains(Object o) 如果此列表中包含指定的元素,则返回 true。更确切地讲,当且仅当此列表包含至少一个满足 (o==null ? e==null : o.equals(e)) 的元素 e 时,则返回 true。 此处复写了equals...
  • Java函数式编程

    2015-05-07 00:42:17
    以前对函数式编程的概念一直都不是很了解,今天在看了《Java程序员修炼之道》中的一段后对函数式编程终于有了一个大致的了解。下面内容引自《Java程序员修炼之道》,这段内容很好的概括了函数式编程,并通过一个例子...
  • 随着函数式编程越来越流行,我们的JavaJava 8开始也引进了函数式编程相关的API,再配合lambda表达式的支持,这样写起Java代码会变得越来越爽。Java 8函数相关的api放在java.util.function的包下面,这个包展开后,...
  • Java函数式接口源码解析

    千次阅读 2020-09-28 20:23:17
    函数式接口 只包含一个抽象方法的接口,称为函数式接口。 你可以通过 Lambda 表达式来创建该接口的对象。(若 Lambda 表达式抛出一个受检...在java.util.function包下定义了Java 8 的丰富的函数式接口 我们查看Comparat
  • 第六章:认识Java的API-使用Java函数Java内置有数百个类:  如果你知道如何从统称Java API的Java函数库中查找所需功能,那就不用再造轮子了;  核心Java函数库是由一堆等着被你当做组件使用的类集合而...
  • fn:contains函数检测一个字符串中是否包含指定的字符串,返回值为布尔类型。fn:contains函数在比较两个字符串是否相等时是大小写敏感的。 fn:contains函数接收两个字符串类型的参数,如果第一个参数字符串中包含第二...
  • Javacontains包含的注意事项

    万次阅读 2017-01-09 15:30:57
    最近在用contains这个方法时遇到了一个坑,特记下来与大家分享。如果有不对的地方希望大家多多指教String str="/login/index.do"; if(str.contains("/login")){ System.out.println("true"); }else{ System.out....
  • Java函数式编程(三)

    千次阅读 2014-03-13 23:44:48
    本系列文章译自Venkat Subramaniam的Functional Programming in Java 第四节:进化而非革命 我们用不着转向别的语言,就能享受函数式编程带来的好处;需要改变的只是使用Java的一些方式。C++,Java,C#这些语言都...
  • Java8新引入函数式编程方式,大大的提高了编码效率。本文将对涉及的对象等进行统一的学习及记录。 首先需要清楚一个概念:函数式接口;它指的是有且只有一个未实现的方法的接口,一般通过FunctionalInterface这个...
  • 在上一篇文章中以实例讲解如何定义和使用lambda表达式,以及与其它语言相比,lambda表达式在Java中的特殊规范。并且提到,lambda表达式可以进一步简化为函数引用。这篇文章将介绍如何使用函数引用。 函数引用的类型 ...
  • freemarker 的内建函数 contains 的使用:&lt;#if employee.departments?contains(department)&gt;checked="checked"&lt;...contains函数可以判断出,元素department是否存...
  • JAVA组合函数Combination

    千次阅读 2013-04-17 01:57:30
    JDK,Apache commons math里都没有发现组合函数,因而自己写了一个。 首先定义接口 package math.combination; import java.util.Collection; import java.util.List; /** * the interface for combination ...
  • java函数--返回多个值

    万次阅读 2017-10-07 17:21:50
    在开发过程中,经常会有这种情况,就是一个函数需要返回多个值,这是一个问题!! 网上这个问题的解决方法: 1、【使用集合类】使用map返回值;这个方法问题是,你并不知道如何返回值的key是什么,只能通过doc或者...
  • 在实际应用中 需要判断 是否包含某个字符串 好了 不废话了  看代码吧  ...mapImg.get("newName").contains("jpg") && !mapImg.get("newName").contains("png")) { ...对 没错 就这么简单 contains 这个方法就可以

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 96,752
精华内容 38,700
关键字:

contains函数java

java 订阅