利用map中key值不能重复的特性,去除重复的字符串,然后用四种方式来遍历结果。
@Test//例子:去除重复的字符串
public void test(){
String arr[] = {"yp_dict",
"yp_manufacture",
"yp_unit",
"yp_app_dict_product",
"yp_app_dict_product",
"a_employee_mi",
"yp_app_dict_product",
"yp_dict",
"yp_base",
"yp_manufacture",
"yp_unit",
"cisdb_byfy..general_order",
"cisdb_byfy..patient_encounter",
"zy_actpatient",
"zd_unit_code",
"yp_app_drugbox_manage",
"yp_app_pack_record",
"dbo.ConvertStrToTable",
"jmpz_jjd_his_v",
"yp_app_pivabag_record",
"yp_app_drugbox_manage",
"yp_app_order_record",
"yp_app_pack_record",
"yp_app_pivabag_record",
"jmpz_jjd_his_v",
"qlshcisdb..nis_yz_occ_record",
"yp_app_barcheck_log"
};
int length = arr.length;
Map<String , Integer> map = new HashMap<>();//把非重复字符串存入map中
for(int i = 0 ; i < length ; i++){
map.put(arr[i] , i);
}
//第一种遍历map的方法,通过加强for循环map.keySet(),然后通过键key获取到value值
for(String s:map.keySet()){
System.out.println("key:" + s + " , value" + map.get(s));
}
//第二种只遍历键或者值,通过加强for循环
for(String s:map.keySet()){
System.out.println("key:" + s);
}
for(Integer v:map.values()){
System.out.println("value:" + v);
}
//第三种方式Map.Entry<String, String>的加强for循环遍历输出键key和值value
for(Map.Entry<String , Integer> entry:map.entrySet()){
System.out.println("key:" + entry.getKey() + " , value:" + entry.getValue());
}
//第四种Iterator遍历获取,然后获取到Map.Entry<String, String>,再得到getKey()和getValue()
Iterator<Map.Entry<String , Integer>> iterator = map.entrySet().iterator();
while(iterator.hasNext()){
Map.Entry<String , Integer> it = iterator.next();
System.out.println("key:" + it.getKey() + " , value:" + it.getValue());
}
}
遍历出来的结果: