java之把一個String數組中有相同共性的元素抽取出來組成新的數組


原鏈接:https://blog.csdn.net/qq_37164847/article/details/82460801

原始數組: String [] data = {"101//aaa","102//bbb","101//ccc","103//aaa","102//vvvv"};

把相同開頭的,例如101,102,103開頭的元素,取出來組成新的數組

String[] a1={"101//aaa","101//ccc"};

String[] a2={"102//bbb","102//vvvv"};

String[] a3={"103//aaa"};

1.方法一:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class testa {
public static void main(String[] args) {
String [] data = {"101//aaa","102//bbb","101//ccc","103//aaa","102//vvvv"};
Map<String,List<String>> map = new HashMap<>();

for (String str : data) {
String key = str.substring(0, str.indexOf("//"));
List<String> list = map.get(key);
//如果map中對應key,創建String數組,並加到map中
if(list==null||list.isEmpty()){
list = new ArrayList<>();
map.put(key,list);
}
//如果map有key對應的string數組,更新數組,為啥map沒有put就更新了數組
list.add(str);

}
System.out.println(map);
}

}
打印出來:

{101=[101//aaa, 101//ccc], 102=[102//bbb, 102//vvvv], 103=[103//aaa]}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM