public static List<String> matchSwap(List<String> list) { Map<String, Integer> map1 = new HashMap<>(); for(int i = 0; i < list.size(); i++){ String s = list.get(i).substring(0,1); if(!map1.containsKey(s)){ map1.put(s,i); } else { int earlymeet = map1.get(s); String temp = list.get(earlymeet); list.set(earlymeet,list.get(i)); list.set(i,temp); map1.remove(s); } } return list; }分析代码
时间: 2023-07-14 18:13:02 浏览: 160
List转换成Map工具类的简单实例
这段代码的功能是将一个字符串列表按首字母相同的顺序进行交换,并返回交换后的列表。
代码中使用了一个 HashMap 来记录每个首字母第一次出现的位置。遍历列表中的每个字符串,如果当前字符串的首字母第一次出现,则将其位置记录在 HashMap 中;否则,就找到首字母相同的第一个字符串,与当前字符串进行交换,并从 HashMap 中删除该首字母的记录。
最后返回交换后的列表。
值得注意的是,这个算法的时间复杂度是 O(n),其中 n 是列表中字符串的数量。
阅读全文