第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用“動(dòng)態(tài)”后綴將唯一元素添加到 ArrayList

使用“動(dòng)態(tài)”后綴將唯一元素添加到 ArrayList

茅侃侃 2022-06-30 17:51:09
我在 Stack 中看到過類似的問題,但它是針對(duì) C 中的文件的。情況:我有一個(gè) ArrayList of Strings ,其中元素是電子郵件。例如:jony@test.comjony1@test.comgerd@test.com等等我想編寫一個(gè)函數(shù)/方法,它將向該列表添加一封新電子郵件,其中包含一個(gè)非常重要的問題?。豪纾绻蚁胩砑印癹ony@test.com”,該方法應(yīng)該通過 ArrayList,如果“jony@test.com”已經(jīng)存在,那么它會(huì)檢查“jony1@test.com”是否存在等,直到它找到免費(fèi)號(hào)碼后綴,然后添加它。在我們的示例中,它應(yīng)該添加“jony2@test.com”。問題是我想要一些簡(jiǎn)短而優(yōu)雅的解決方案,我寫的是丑陋的 150 行代碼和 3 種方法等,看起來不太好。任何人都有一個(gè)很好的算法或者可能是高級(jí)的 Collection 功能來完成這個(gè)?
查看完整描述

4 回答

?
ibeautiful

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊

您可以在添加之前檢查您的列表,如下所示:


public void addWithSuffix(String email) {

    if(list.contains(email)) {

        int number = 0;

        String[] tmp = email.split("@");


        for(; list.contains(tmp[0] + number + "@" + tmp[1]); number++){}


        list.add((tmp[0] + number + "@" + tmp[1]));

    }

    else {

        list.add(email);

    }

}

但是,當(dāng)然,在嘗試添加之前驗(yàn)證您的輸入以確保電子郵件有效。而且我還建議將 a 換成ListaSet


查看完整回答
反對(duì) 回復(fù) 2022-06-30
?
倚天杖

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊

創(chuàng)建自定義添加方法并使用拆分值并檢查直到達(dá)到最大值,


import java.util.ArrayList;

import java.util.List;


public class CustomListAdd {



    public static void main(String[] args) {

        List <String> list=new ArrayList<String>();

        add("jony@test.com",list);

        add("jony@test.com",list);

        add("jony@test.com",list);

        add("jony@test.com",list);

        System.out.println(list);

    }

    public static void add(String value,List<String> list) {

        if(list.contains(value)) {

            int count = 1;

            String[] strSplited = value.split("@");


            while(list.contains(strSplited[0] + count + "@" + strSplited[1]))

                count++;

            list.add((strSplited[0] + count + "@" + strSplited[1]));

        }

        else {

            list.add(value);

        }

    }

}


查看完整回答
反對(duì) 回復(fù) 2022-06-30
?
吃雞游戲

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

嘗試這個(gè)


主班


List <String> list=new ArrayList<String>();

    list.add("jony@test.com");

    list.add("jony1@test.com");

    list.add("jony2@test.com");

    list.add("jony3@test.com");

    list.add("gerd@test.com");

    String newEmail = "jony@test.com";

    String last = "";

    for (String string : list) {

        if(compareString(newEmail , string)){

            last = string;

        }

    }

    int newNumber = Integer.valueOf(last.substring(last.indexOf("@")-1, last.indexOf("@")))+1;

    String[] s = newEmail.split("@");

    list.add(s[0]+ newNumber + s[1]);

    System.out.println(list);

替換數(shù)字后比較字符串


private static boolean compareString(String string, String string2) {

    string2 = string2.replaceAll("\\d","");

    return string.equals(string2);

}


查看完整回答
反對(duì) 回復(fù) 2022-06-30
?
幕布斯6054654

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊

嘗試這個(gè):


import java.io.*;

import java.util.*;


public class DynamicMail{


private Map<String, Integer> map = new HashMap<>();

private List<String> emails = new ArrayList<>();


public static void main(String args[]){

    DynamicMail dm = new DynamicMail();

    dm.addToList("jony@test.com");

    dm.addToList("gary@test.com");

    dm.addToList("jony@test.com");

    dm.addToList("jony@test.com");

    dm.addToList("jony@test.com");

    dm.addToList("gary@test.com");

    dm.addToList("ghost@test.com");


    System.out.println(dm.getEmails());

}


public Map<String, Integer> getMap(){

    return map;

}


public List<String> getEmails(){

    return emails;

}


public void addToList(String email){

    String[] parts = email.split("@");

    Integer i = map.computeIfAbsent(parts[0], x->new Integer(0));

    if(i!=0)

        emails.add(parts[0]+i+"@"+parts[1]);

    else

        emails.add(email);

    map.put(parts[0], ++i);


}

}

假設(shè)您從一個(gè)空列表開始,并且 jony1@test.com 或 gerd2@test.com 之類的電子郵件不會(huì)作為輸入,這將起作用。


查看完整回答
反對(duì) 回復(fù) 2022-06-30
  • 4 回答
  • 0 關(guān)注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)