最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java判定數(shù)組或集合是否存在某個(gè)元素的實(shí)例

 更新時(shí)間:2017年01月12日 09:21:08   投稿:jingxian  
下面小編就為大家?guī)硪黄猨ava判定數(shù)組或集合是否存在某個(gè)元素的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

引言:

今天群里有朋友問“怎么知道一個(gè)數(shù)組集合是否已經(jīng)存在當(dāng)前對(duì)象”,大家都知道循環(huán)比對(duì),包括我這位大神群友。還有沒其他辦法呢?且看此篇。

正文:

能找到這里的都是程序員吧,直接上代碼應(yīng)該更清楚些。

import java.io.Serializable; 
import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.Collection; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
 
public class Test implements Serializable { 
 
  private static final long serialVersionUID = 2640934692335200272L; 
 
  public static void main(String[] args) { 
 
    // data segment 
    String[] SAMPLE_ARRAY = new String[] { "aaa", "solo", "king" }; 
    String TEST_STR = "king"; 
    Collection TEMPLATE_COLL = new ArrayList(); 
    TEMPLATE_COLL.add("aaa"); 
    TEMPLATE_COLL.add("solo"); 
    TEMPLATE_COLL.add("king"); 
    // <- data segment 
 
    // 1, 字符串?dāng)?shù)組是否存在子元素 
    // 1-1, 直接使用API 
    Arrays.sort(SAMPLE_ARRAY); 
    int index = Arrays.binarySearch(SAMPLE_ARRAY, TEST_STR); 
    System.out.println("1-1_sort-binarySearche:" 
        + ((index != -1) ? true : false)); 
 
    // 1-2, 使用正則(因Arrays.toString()引入了“, [ ]”故只在有限環(huán)境下可靠) 
    String tmp = Arrays.toString(SAMPLE_ARRAY); 
    Pattern p = Pattern.compile("king"); 
    Matcher m = p.matcher(tmp); 
    System.out.println("1-2_toString-Regex:" + m.find()); 
 
    // 1-3, 都會(huì)寫循環(huán),略過。 
    // TODO: 循環(huán)數(shù)據(jù)依次比對(duì),此處略去5行代碼。 
 
    // 2, 集合是否存在子元素 
    // 2-1, 最常用的contains 
    System.out.println("2-1_contains:" + TEMPLATE_COLL.contains(TEST_STR)); 
 
    // 2-1-1, 擴(kuò)展: 
    // 按模板集合,將當(dāng)前集合分為“模板已存在”與“不存在”兩個(gè)子集。 
    Collection coll = new ArrayList<String>(); 
    coll.add("aaa"); 
    coll.add("bbb"); 
    coll.add("ccc"); 
    // 完整復(fù)制集合 
    Collection collExists = new ArrayList(coll); 
    Collection collNotExists = new ArrayList(coll); 
 
    collExists.removeAll(TEMPLATE_COLL); 
    System.out.println("2-1-1_removeAll[exist]:" + collExists); 
    collNotExists.removeAll(collExists); 
    System.out.println("2-1-1_removeAll[notexist]:" + collNotExists); 
 
  } 
 
} 

運(yùn)行結(jié)果:

1-1_sort-binarySearche:true 
1-2_toString-Regex:true 
2-1_contains:true 
2-1-1_removeAll[exist]:[bbb, ccc] 
2-1-1_removeAll[notexist]:[aaa] 

小結(jié)一下吧~。=

1)數(shù)組至少三種:

    A)binarySearch(,)。但條件是需要事先排序,開銷需要考慮。
    B)Regex。但需要將數(shù)組轉(zhuǎn)為字符串,Arrays類提供的方法會(huì)引入“, [ ]”這三種分割符,可能影響判定結(jié)果。
    C)循環(huán)比對(duì)。

2)集合至少兩種:

    A)循環(huán)。如果只是判定默認(rèn)存在(非定制型存在),建議直接不考慮。
    B)contains。能靠過來就果斷靠吧。

3)集合提供了類似“加減”的運(yùn)算,可以留意一下。

以上就是小編為大家?guī)淼膉ava判定數(shù)組或集合是否存在某個(gè)元素的實(shí)例全部內(nèi)容了,希望大家多多支持腳本之家~

相關(guān)文章

  • 一篇文章帶你了解JAVA面對(duì)對(duì)象三大特征之封裝

    一篇文章帶你了解JAVA面對(duì)對(duì)象三大特征之封裝

    所有的面向?qū)ο缶幊陶Z言的思路都是差不多的,而這三大特性,則是思路中的支柱點(diǎn),接下來我就重點(diǎn)講解了一下java三大特性-封裝,感興趣的朋友跟隨腳本之家小編一起看看吧
    2021-08-08
  • IDEA如何快速構(gòu)建UML類圖

    IDEA如何快速構(gòu)建UML類圖

    UML類圖是一種用于描述軟件系統(tǒng)靜態(tài)結(jié)構(gòu)的可視化建模語言,它通過類、屬性、方法以及它們之間的關(guān)系來表示系統(tǒng),類圖主要用于面向?qū)ο笤O(shè)計(jì),幫助理解系統(tǒng)的結(jié)構(gòu)和類之間的關(guān)系,IDEA提供了自動(dòng)生成UML類圖的功能,但其局限性在于只能基于現(xiàn)有代碼生成
    2025-02-02
  • Java中IO流 字節(jié)流實(shí)例詳解

    Java中IO流 字節(jié)流實(shí)例詳解

    這篇文章主要介紹了Java中IO流 字節(jié)流實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Java中通過反射實(shí)現(xiàn)代理Proxy代碼實(shí)例

    Java中通過反射實(shí)現(xiàn)代理Proxy代碼實(shí)例

    這篇文章主要介紹了Java中通過反射實(shí)現(xiàn)代理Proxy代碼實(shí)例,java實(shí)現(xiàn)代理可以通過java.lang.reflect.Proxy接口結(jié)合java.lang.reflect.InvocationHandler來實(shí)現(xiàn),需要的朋友可以參考下
    2023-08-08
  • java中的數(shù)學(xué)計(jì)算函數(shù)的總結(jié)

    java中的數(shù)學(xué)計(jì)算函數(shù)的總結(jié)

    這篇文章主要介紹了java中的數(shù)學(xué)計(jì)算函數(shù)的總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • 示例解析java重載Overloading與覆蓋Overriding

    示例解析java重載Overloading與覆蓋Overriding

    這篇文章主要介紹了java重載Overloading與覆蓋Overriding的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • java鎖升級(jí)過程過程詳解

    java鎖升級(jí)過程過程詳解

    這篇文章主要介紹了Java鎖升級(jí)的實(shí)現(xiàn)過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • IDEA中實(shí)現(xiàn)springboot熱部署方式

    IDEA中實(shí)現(xiàn)springboot熱部署方式

    在IDEA中實(shí)現(xiàn)SpringBoot的熱部署可以通過修改設(shè)置來完成,首先在設(shè)置中搜索Compiler,并勾選Build project automatically,然后進(jìn)入Advanced Settings,勾選Allow auto-make to start even if developed application is currently running
    2024-09-09
  • Spring Boot如何移除內(nèi)嵌Tomcat,使用非web方式啟動(dòng)

    Spring Boot如何移除內(nèi)嵌Tomcat,使用非web方式啟動(dòng)

    這篇文章主要介紹了Spring Boot如何移除內(nèi)嵌Tomcat,使用非web方式啟動(dòng),幫助大家更好的理解和學(xué)習(xí)使用spring boot框架,感興趣的朋友可以了解下
    2021-02-02
  • Java8中l(wèi)ambda表達(dá)式的應(yīng)用及一些泛型相關(guān)知識(shí)

    Java8中l(wèi)ambda表達(dá)式的應(yīng)用及一些泛型相關(guān)知識(shí)

    這篇文章主要介紹了Java8中l(wèi)ambda表達(dá)式的應(yīng)用及一些泛型相關(guān)知識(shí)的相關(guān)資料
    2017-01-01

最新評(píng)論

新郑市| 宁陵县| 昌吉市| 合水县| 怀宁县| 普洱| 宁乡县| 航空| 三原县| 双城市| 鲁山县| 河南省| 安庆市| 枝江市| 林芝县| 宁晋县| 磐安县| 青州市| 梁平县| 吉木乃县| 湘潭市| 呼和浩特市| 临澧县| 珠海市| 潮州市| 梧州市| 门源| 北宁市| 乌鲁木齐市| 蓬溪县| 三门峡市| 罗江县| 饶河县| 卓资县| 曲水县| 长岛县| 昭通市| 庐江县| 墨江| 天祝| 江阴市|