精华内容
下载资源
问答
  • 判断集合的元素前缀满足多个标准之一 public static void main(String[] args) { //这里代表标准: 以boy,girl,car开头的String String[] strs = new String[]{"boy", "girl", "...

    判断集合中的元素前缀满足多个标准之一

    
        public static void main(String[] args) {
            //这里代表标准: 以boy,girl,car开头的String
            String[] strs = new String[]{"boy", "girl", "car"};
            //要求如果List中的元素符合标准,则把符合标准的元素组成一个新的List
            List<String> stringList = new ArrayList<>();
            stringList.add("boy_xueweiping");
            stringList.add("guona_ss");
            stringList.add("girl_guona");
            stringList.add("car_jeep");
            stringList.add("boy_wangzhi");
            stringList.add("wangyanbo");
            //这里用了java8 的stream
            List<String> collect = stringList.stream().filter(x -> Stream.of(strs).collect(Collectors.toList()).contains(x.substring(0, x.indexOf("_") == -1 ? 0 : x.indexOf("_")))).collect(Collectors.toList());
            System.out.println(collect);
        }
    
    

    输出:
    输出如下

    展开全文
  • golang 判断元素是否在数组

    千次阅读 2020-07-12 10:21:20
    众所周知,golang里没有像python的in来判断元素是否在list里存在,可替代的办法是将list放到map里,在map里判断元素是否存在 // 已知list元素"amber","jack" arr := [...]string{"amber","jack"} // 初始化map ...

    背景

    众所周知,golang里没有像python的in来判断元素是否在list里存在,可替代的办法是将list放到map里,在map里判断元素是否存在

    // 已知list中元素"amber","jack"
    arr := [...]string{"amber","jack"}
    
    // 初始化map
    var set map[string]struct{}
    set = make(map[string]struct{})
    // 上面2部可替换为set := make(map[string]struct{})
    
    // 将list内容传递进map,只根据key判断,所以不需要关心value的值,用struct{}{}表示
    for _, value := range arr{
    	set[value] = struct{}{}
    }
    
    // 检查元素是否在map
    if _, ok := set["amber"];ok {
    	fmt.Println("amber is in the list")
    } else {
    	fmt.Println("amber is not in the list")
    
    }
    
    展开全文
  • java中判断一个数是否在数组中

    千次阅读 2017-06-01 16:52:55
    List rows = new java.util.ArrayList();  String a[]={"a1","a2"};  String b[]={"b1","b3"};  String b1[]={"bd1","bdd3"};  String b2[]={"b2","a3"};  String c[]={"a3","a2d"};  rows.add(a);  ...
    List<Object[]> rows = new java.util.ArrayList<Object[]>();
     String a[]={"a1","a2"};
     String b[]={"b1","b3"};
     String b1[]={"bd1","bdd3"};
     String b2[]={"b2","a3"};
     String c[]={"a3","a2d"};
     rows.add(a);
     rows.add(b);
          rows.add(b2);
          rows.add(b1);
     for (int i = 0; i < rows.size(); i++) {
         boolean flag=true;
     for (int j = 0; j < c.length; j++) {
    if(rows.get(i)[1].equals(c[j])){
    System.out.println("存在该数字!");
    flag=false;
        break;   
     
     }
     if(flag){
    System.out.println("不存在该数字!");
    System.out.println(i);
      //rows.remove(i);
     }
      }
     System.out.println("----------------");
     int index[]={0,1,3};
     for (int i = 0; i < index.length; i++) {
     rows.remove(0);
    }
     for (int i = 0; i < rows.size(); i++) {
    System.out.println(rows.get(i)[0]+" "+rows.get(i)[1]);
    }
    展开全文
  • Java中如何高效的判断数组中是否包含某个元素 Arrays.asList Arrays.asList的作用是将数组转化为list,一般是用于初始化的时候,设置几个值进去,简化代码,省去add的部分。 List<String> ebsCodes = ...

                在Java中如何高效的判断数组中是否包含某个元素

    Arrays.asList

    Arrays.asList的作用是将数组转化为list,一般是用于在初始化的时候,设置几个值进去,简化代码,省去add的部分。

    List<String> ebsCodes = Arrays.asList("USERNAME","REAP","NLS");

    也可以使数组[但是数组类型不能是(byte,short,int,long,float,double,boolean),可以是integer等。

     String[] s = {"aa","bb","cc"};
    List<String> strlist = Arrays.asList(s);

    注意

    (1)该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean),可以是integer。
    (2)该方法将数组与列表链接起来,当更新其中之一时,另一个自动更新
    (3)不支持add和remove方法

    1 List

    public static boolean useList(String[] arr, String targetValue) {
        return Arrays.asList(arr).contains(targetValue);
    }
    

    源码 

    源码List:Arrays.asList(arr).contains(targetValue),使用循环查找
    /**
         * Returns the index of the first occurrence of the specified element
         * in this list, or -1 if this list does not contain the element.
         * More formally, returns the lowest index <tt>i</tt> such that
         * <tt>(o==null ? get(i)==null : o.equals(get(i)))</tt>,
         * or -1 if there is no such index.
         */
        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;
        }
    

    2 Set

    public static boolean useSet(String[] arr, String targetValue) {
        Set<String> set = new HashSet<String>(Arrays.asList(arr));
        return set.contains(targetValue);
    }
    

     Set使用的是HashSet的contains方法(HashSet底层HashMap实现),通过hash值循环对比查找

    /**
         * Implements Map.get and related methods
         *
         * @param hash hash for key
         * @param key the key
         * @return the node, or null if none
         */
        final Node<K,V> getNode(int hash, Object key) {
            Node<K,V>[] tab; Node<K,V> first, e; int n; K k;
            if ((tab = table) != null && (n = tab.length) > 0 &&
                (first = tab[(n - 1) & hash]) != null) {
                if (first.hash == hash && // always check first node
                    ((k = first.key) == key || (key != null && key.equals(k))))
                    return first;
                if ((e = first.next) != null) {
                    if (first instanceof TreeNode)
                        return ((TreeNode<K,V>)first).getTreeNode(hash, key);
                    do {
                        if (e.hash == hash &&
                            ((k = e.key) == key || (key != null && key.equals(k))))
                            return e;
                    } while ((e = e.next) != null);
                }
            }
            return null;
        }
    

    3循环判断

    public static boolean useLoop(String[] arr, String targetValue) {
        for(String s: arr){
            if(s.equals(targetValue))
                return true;
        }
        return false;
    }
    

    4 Arrays.binarySearch()

    Arrays.binarySearch()方法只能用于有序数组!!!如果数组无序的话得到的结果就会很奇怪。
    public static boolean useArraysBinarySearch(String[] arr, String targetValue) { 
        int a =  Arrays.binarySearch(arr, targetValue);
        if(a > 0)
            return true;
        else
            return false;
    }
    

    源码 BinarySearch(查找数组必须有序): 源码使用二分查找实现元素查找

    private static int binarySearch0(Object[] a, int fromIndex, int toIndex,
                                         Object key) {
            int low = fromIndex;
            int high = toIndex - 1;
     
            while (low <= high) {
                int mid = (low + high) >>> 1;
                @SuppressWarnings("rawtypes")
                Comparable midVal = (Comparable)a[mid];
                @SuppressWarnings("unchecked")
                int cmp = midVal.compareTo(key);
     
                if (cmp < 0)
                    low = mid + 1;
                else if (cmp > 0)
                    high = mid - 1;
                else
                    return mid; // key found
            }
            return -(low + 1);  // key not found.
        }
    

    5 ArrayUtils

    import org.apache.commons.lang3.ArrayUtils;
    public static boolean useArrayUtils(String[] arr, String targetValue) {
        return ArrayUtils.contains(arr,targetValue);
    }
    

    ArrayUtils.contains的源码 ArrayUtils.contains(arr, targetValue),同样使用循环实现查找

    if(array == null) {
           return -1;
       } else {
           if(startIndex < 0) {
               startIndex = 0;
           }
     
           int i;
           if(objectToFind == null) {
               for(i = startIndex; i < array.length; ++i) {
                   if(array[i] == null) {
                       return i;
                   }
               }
           } else if(array.getClass().getComponentType().isInstance(objectToFind)) {
               for(i = startIndex; i < array.length; ++i) {
                   if(objectToFind.equals(array[i])) {
                       return i;
                   }
               }
           }
     
           return -1;
       }
    

    总结

    使用一个简单的循环方法比使用任何集合都更加高效。许多开发人员为了方便,都使用第一种方法,但是他的效率也相对较低。因为将数组压入Collection类型中,首先要将数组元素遍历一遍,然后再使用集合类做其他操作

     

    展开全文
  • 如何检查一个数组(无序)是否包含一个特定的值?这是一个Java经常用到的并且非常有用的操作。同时,这个问题Stack Overflow...检查数组是否包含某个值的方法使用Listpublic static boolean useList(String[]...
  • 如何检查一个数组(无序)是否包含一个特定的值?这是一个Java经常用到的并且非常有用的操作。同时,这个问题Stack Overflow也...检查数组是否包含某个值的方法使用Listpublic static boolean useList(String[]...
  • 如何检查一个数组(无序)是否包含一个特定的值?这是一个Java经常用到的并且非常有用的操作。同时,这个问题Stack Overflow...检查数组是否包含某个值的方法使用Listpublic static boolean useList(String[]...
  • 如何检查一个数组(无序)是否包含一个特定的值?这是一个Java经常用到的并且非常有用的操作。同时,这个问题Stack Overflow...检查数组是否包含某个值的方法使用Listpublic static boolean useList(String[]...
  • 如何检查一个数组(无序)是否包含一个特定的值?这是一个Java经常用到的并且非常有用的操作。同时,这个问题Stack Overflow也是一个非常热门的问题。...public static boolean useList(String[] ...
  • adp.net 和js 判断一个值是否在数组中

    千次阅读 2013-10-30 11:33:25
    string [] flag = adminuser.Flag.Split('/'); List list = new List(flag); if (list.Contains("9")) Response.Write("当前操作用户"+adminuser.UserName.ToString()); else Response.Write("alert('您无权限进行...
  • 背景: 如有字符串:String certDn = "CN=00,GIVENNAME=44,STREET=55,DNQUALIFIER...判断等号左边的字符串是否为规定值。 package com.xdja.pki.test.util; import java.util.Arrays; import java.util.List; ...
  • 1.BigDecimal与int相互转换: 1 import java.math.BigDecimal; 2 public class HelloWorld { 3 public static void main(String []args) { 4 //BigDecimal转int 5 BigDecimal bigCount =...
  • 如何检查一个数组(无序)是否包含一个特定的值?这是一个Java经常用到的并且非常有用的操作。同时,这个问题Stack Overflow也是一个非常热门的问题。投票比较高的几个答案给出了几种不同的方法,但是他们...
  • java判断数组是否包含某个值相信大家操作Java的时候,经常会要检查一个数组(无序)是否包含一个特定的值?这是一个Java经常用到的并且非常有用的操作。下面给出四种方式,其中最有效率的还是loop方式,有兴趣的...
  • 直接代码: static void Main(string[] args) { string[] array = { "C#", "Asp.net", "C++", "Java", "109", "28" }; List<string> list = new List<string>(array...
  • 使用Arrays类中asList()方法将数组转化为List()列表,使用contains()方法判断数组中是否存在某个值。 String[] array = {"1","2","3","4","5"}; boolean flag = Arrays.asList(array).contains("2"); System.out...
  • 如何检查一个数组(未排序)中是否包含某个特定的值?Java,这是一个非常有用并又很常用的操作。同时,StackOverflow,有时一个得票非常高的问题。得票比较高的几个回答,时间复杂度差别也很大。下面的...
  • 如何检查一个未排序的数组中是否包含某个特定值,这是一个Java中非常实用并且频繁使用的操作。另外,这也是Stack Overflow上面非常受关注的问题。得票数最多的答案中,可以看到,检查数组中是否包含特定值可以用...
  • Java中,我们如何判断一个未排序数组中是否包含一个特定的值?这Java代码中是一个频繁且非常实用的操作。那么什么样的方法才是最高效的方式?主要包括以下几种方法:四种方法Listpublic static boolean useList...
  • 如何检查数组(未排序)是否包含某个值?这是Java非常有用且经常使用的操作。这也是Stack Overflow上票数...1.检查数组是否包含值的四种不同方法1)使用List:public static boolean useList(String[] arr, Strin...
  • 如何在数组中寻找元素,对应 underscore 中的 _.findIndex,_.findLastIndex,_.indexOf,_.lastIndexOf 以及 _.sortIndex 方法。 等等,是不是有点眼熟,没错,...
  • 开发的过程,会涉及到很多判断一个数组集合是否包含某个元素的需求。强大的list集合框架通过contains这样一个方法实现了我们的需求。list元素类型是基本类型则可以直接调用contains方法来实现。但是如果元素类型...
  • 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 程序: 1.循环遍历每一个整数,判断是否等于给定的整数,如果相等则输出存在,否则不存在。 # -*- coding:utf-8 -*- class...
  • 一、遍历添加值的练习题 题目: 首先创建一个list 名字叫 Personlist 创建3个数组 ,分别为 String 内容 “我” “爱” “你” ...把所有的数组内容分各放入list集合 清除list里面所有元素 判断是否为空 为空...
  • //实体类增加一个属性,用于接收不数据库的字段 public List&lt;String&gt; getRequirement(){ List&lt;String&gt; list = new ArrayList&lt;String&gt;(); //判断是否有...
  • java 中List 去重复

    2017-04-07 10:40:00
    定义一个List 数组去重复 ...if(waresid.contains(cc)){//判断cc是否在waresid这个List中,如果不存在则将cc添加到waresid列表,如果存在则不添加 }else{ waresid.add(cc); } list..contai
  • 遇到一个奇怪的问题,折磨了我一天了,希望哪位高人给看一下,通过接口获取到微信用户的信息后,使用网上找的一个数据库操作类写入数据表,数据库操作类的insert函数有个检查传入数组元素是否为空的判断,只要...
  • 1.有时创建一个string类型的数组对象时,或者list时,就必须要先new一下才可以!不然堆栈里面没有这个东西,就会出现异常。 2.在判断数组非空的时候,要先判断是否为null,再去判断长度这些,不然会出现空指针...
  • String类的substring方法

    2012-03-31 17:10:42
    最近遇到一道编程题,题目如下:  编写一个Java应用程序,程序运行后,要求到指定的文件夹(比如d:\work...把d:\work目录下的文件或是子目录存放File数组中(listFile()方法)  2.遍历File数组,判断此文件实例是否
  • 执行发现,用户释放了代理对象以后,连接add进list以后,变回了非代理的ConnectionImpl对象,导致再次取出时,代理作用丢失,请各位帮忙分析一下是怎么回事? ``` import java.lang.reflect....

空空如也

空空如也

1 2 3 4 5 6
收藏数 118
精华内容 47
关键字:

判断string是否在list数组中