在测试HashMap的hash冲突、扩容、红黑树转换的时候,需要一些特殊的测试数据,所以就找了一些测试数据。
测试数据的生成方法见 传送门
public static void main(String[] args) {
for (int i = 1179395; i <= 1179395; i++) {
for (int j = 19968; j <= 40869; j++) {
for (int m = 19968; m <= 40869; m++) {
if (i == 31 * j + m) {
System.out.println((char) j + "" + (char) m);
}
}
}
}
}
上面就是生成hash值相同的两位字符串的例子。
下面就是生成的数据,为了方便使用,我手动弄成了json串(这么多数据都是hash值为1179395)
{
"sss": [
"轷龚","轸齻","轹齜","轺鼽","轻鼞","轼黿","载黠","轾黁","轿麢","辀麃","辁鹤","辂鹅","较鸦","辄鸇","辅鷨","辆鷉","辇鶪","辈鶋","辉鵬","辊鵍","辋鴮","辌鴏","辍鳰","辎鳑","辏鲲",
"辐鲓","辑鱴","辒鱕","输鰶","辔鰗","辕鯸","辖鯙","辗鮺","辘鮛","辙魼","辚魝","辛鬾","辜鬟","辝鬀","辞髡","辟髂","辠骣","辡骄","辢驥","辣驆","辤騧","辥騈","辦駩","辧駊","辨馫",
"辩馌","辪饭","辫饎","辬餯","辭餐","辮飱","辯飒","辰颳","辱颔","農页","辳顖","辴頷","辵領","辶韹","辷韚","辸鞻","边鞜","辺靽","辻非","込霿","辽霠","达霁","辿離","迀雃","迁隤",
"迂隅","迃陦","迄陇","迅阨","迆阉","过闪","迈闋","迉閬","迊閍","迋镮","迌镏","迍锰","迎锑","迏铲","运铓","近钴","迒钕","迓鑶","返鑗","迕鐸","迖鐙","迗鏺","还鏛","这鎼","迚鎝",
"进鍾","远鍟","违鍀","连錡","迟錂","迠鋣","迡鋄","迢銥","迣銆","迤鉧","迥鉈","迦鈩","迧鈊","迨釫","迩里","迪醭","迫醎","迬酯","迭酐","迮鄱","迯鄒","述郳","迱郔","迲邵","迳邖",
"迴遷","迵遘","迶逹","迷通","迸迻","迹远","迺辽","迻辞","迼轿","追轠","迾轁","迿輢","退較","送軤","适軅","逃躦","逄躇","逅蹨","逆蹉","逇踪","逈踋","选跬","逊跍","逋趮","逌趏",
"逍走","逎赑","透贲","逐贓","逑賴","递賕","逓貶","途貗","逕豸","逖豙","逗谺","逘谛","這诼","通话","逛设","逜讟","逝讀","逞譡","速譂","造謣","逡謄","逢諥","連諆","逤誧","逥誈",
"逦詩","逧詊","逨訫","逩訌","逪觭","逫觎","逬覯","逭覐","逮襱","逯襒","逰褳","週褔","進裵","逳裖","逴袷","逵袘","逶衹","逷衚","逸蠻","逹蠜","逺蟽","逻蟞","逼螿","逽螠","逾螁",
"逿蝢","遀蝃","遁蜤","遂蜅","遃蛦","遄蛇","遅蚨","遆蚉","遇虪","遈虋","遉蘬","遊蘍","運藮","遌藏","遍薰","過薑","遏蕲","遐蕓","遑蔴","遒蔕","道蓶","達蓗","違蒸","遖蒙","遗葺",
"遘葛","遙萼","遚萝","遛菾","遜菟","遝菀","遞莡","遟莂","遠荣","遡荄","遢茥","遣茆","遤苧","遥苈","遦芩","遧芊","遨艫","適艌","遪舭","遫舎","遬臯","遭臐","遮膱","遯膒","遰腳",
"遱腔","遲脵","遳脖","遴胷","遵胘","遶肹","遷肚","選聻","遹聜","遺耽","遻耞","遼翿","遽翠","遾翁","避羢","邀羃","邁罤","邂罅","邃缦","還缇","邅绨","邆绉","邇纪","邈纋","邉繬",
"邊繍","邋縮","邌縏","邍緰","邎緑","邏網","邐經","邑絴","邒絕","邓紶","邔紗","邕糸","邖糙","邗粺","邘粛","邙籼","邚籝","邛簾","邜簟","邝簀","邞篡","邟篂","邠箣","邡箄","邢筥",
"那筆","邤笧","邥笈","邦竩","邧竊","邨窫","邩窌","邪穭","邫穎","邬稯","邭稐","邮秱","邯秒","邰禳","邱禔","邲祵","邳祖","邴礷","邵礘","邶磹","邷磚","邸碻","邹碜","邺硽","邻硞",
"邼砿","邽砠","邾码","邿矢","郀矃","郁瞤","郂瞅","郃睦","郄睇","郅眨","郆眉","郇盪","郈盋","郉皬","郊皍","郋癮","郌癏","郍瘰","郎瘑","郏痲","郐痓","郑疴","郒疕","郓當","郔畗",
"郕甸","郖甙","郗瓺","郘瓛","郙璼","郚璝","郛瑾","郜瑟","郝瑀","郞琡","郟琂","郠珣","郡珄","郢玥","郣玆","郤獧","郥獈","郦猩","郧猊","部狫","郩狌","郪犭","郫犎","郬牯","郭牐",
"郮爱","郯爒","郰燳","郱燔","郲熵","郳熖","郴煷","郵煘","郶焹","郷焚","郸烻","郹烜","郺炽","郻炞","郼灿","都灠","郾灁","郿瀢","鄀瀃","鄁濤","鄂濅","鄃澦","鄄澇","鄅潨","鄆潉",
"鄇漪","鄈漋","鄉滬","鄊滍","鄋溮","鄌溏","鄍湰","鄎湑","鄏渲","鄐渓","鄑淴","鄒淕","鄓涶","鄔涗","鄕浸","鄖浙","鄗洺","鄘洛","鄙泼","鄚泝","鄛沾","鄜沟","鄝沀","鄞污","鄟求",
"鄠氣","鄡氄","鄢毥","鄣毆","鄤殧","鄥殈","鄦歩","鄧歊","鄨欫","鄩欌","鄪櫭","鄫櫎","鄬檯","鄭檐","鄮橱","鄯橒","鄰樳","鄱樔","鄲槵","鄳槖","鄴榷","鄵榘","鄶楹","鄷楚","鄸椻",
"鄹検","鄺棽","鄻棞","鄼梿","鄽梠","鄾梁","鄿桢","酀桃","酁栤","酂栅","酃柦","酄柇","酅枨","酆枉","酇杪","酈杋","酉本","酊服","酋曮","酌曏","配暰","酎暑","酏晲","酐晓","酑昴",
"酒昕","酓时","酔旗","酕斸","酖料","酗敺","酘敛","酙攼","酚攝","酛擾","酜擟","酝擀","酞撡","酟撂","酠摣","酡摄","酢搥","酣搆","酤揧","酥揈","酦掩","酧掊","酨捫","酩捌","酪挭",
"酫挎","酬拯","酭拐","酮抱","酯抒","酰扳","酱扔","酲戵","酳或","酴懷","酵懘","酶憹","酷憚","酸慻","酹慜","酺愽","酻愞","酼惿","酽惠","酾惁","酿悢","醀悃","醁恤","醂恅","醃怦",
"醄怇","醅忨","醆忉","醇循","醈律","醉彬","醊彍","醋弮","醌式","醍廰","醎廑","醏庲","醐库","醑年","醒幕","醓帶","醔帗","醕巸","醖巙","醗嶺","醘嶛","醙嵼","醚嵝","醛崾","醜崟",
"醝崀","醞峡","醟峂","醠岣","醡岄","醢履","醣屆","醤尧","醥專","醦審","醧寊","醨宫","醩完","醪孭","醫孎","醬嬯","醭嬐","醮嫱","醯嫒","醰媳","醱媔","醲婵","醳婖","醴娷","醵娘",
"醶姹","醷姚","醸妻","醹妜","醺好","醻奞","醼夿","醽夠","醾夁","醿壢","釀壃","釁墤","釂墅","釃塦","釄塇","釅堨","釆堉","采埪","釈埋","釉垬","释垍","釋坮","里坏","重地","野圑",
"量囲","釐囓","金嚴","釒嚕","釓噶","釔噗","釕嘸","釖嘙","釗嗺","釘嗛","釙喼","釚喝","釛啾","釜啟","針啀","釞唡","釟唂","釠哣","釡哄","釢咥","釣咆","釤呧","釥呈","釦吩","釧吊",
"釨叫","釩双","釪厭","釫厎","釬卯","釭卐","釮匱","釯匒","釰勳","釱勔","釲劵","釳劖","釴剷","釵剘","釶刹","釷刚","釸击","釹凜","釺冽","釻冞","釼兿","釽兠","釾允","釿儢","鈀儃",
"鈁僤","鈂僅","鈃傦","鈄傇","鈅偨","鈆偉","鈇倪","鈈個","鈉俬","鈊俍","鈋侮","鈌侏","鈍佰","鈎佑","鈏伲","鈐伓","鈑仴","鈒仕","鈓亶","鈔亗","鈕乸","鈖乙","鈗为","鈘丛"
]
}
然后测试代码如下:
import cn.hutool.core.io.IoUtil;
import org.springframework.boot.configurationprocessor.json.JSONArray;
import org.springframework.boot.configurationprocessor.json.JSONException;
import org.springframework.boot.configurationprocessor.json.JSONObject;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
public static void main(String[] args) throws JSONException, IOException {
Map<String, String> map = new HashMap<>();
InputStream in = Test11.class.getClassLoader().getResourceAsStream("text.json");
assert in != null;
String str = IoUtil.read(in, StandardCharsets.UTF_8);
in.close();
JSONObject json = new JSONObject(str);
JSONArray array = json.getJSONArray("sss");
int length = array.length();
for (int i = 0; i < length; i++) {
String ss = array.getString(i);
map.put(ss, ss);
}
System.out.println(map.toString());
}










网友评论