java 处理字符唯一的方法 我有一个集合比如 String[] str = a;b;c;d;g;r; 我需求确认 每个元素在这个集合中唯一性, 比较好的方法是什么呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用 HashMap<String,Integer>字符串作 key、出现次为 value HashMap.get("字符") > 1 用Set集合不是很好嘛,Set集合中是不会有重复的 现在 我已经保存了HashMap 里面的值为 addStr= 2A addVal= 1 addStr= 2B addVal= 2 addStr= 2C addVal= 3 那我要怎样去循环比对唯一性呢~ 你可以try set嘛,然后捕获 抛出重复键值de 异常 给出提示嘛 大哥,那个主键是唯一的,所以不要循环遍历啊!get出来(先判断是否为空),然后比较次数就知道了!下面我写个简单的例子。import java.util.HashMap;import java.util.Map;import java.util.Random;public class Main { public static void main(String[] args) { Map<String,Integer> data = new HashMap<String,Integer>(); //模拟添加数据,添加1到10之间的数字为主键,随机生成 Random random = new Random(); for(int i=0; i<20; i++) { String temp = String.valueOf(random.nextInt(10)); if(data.get(temp) == null) { data.put(temp, 1); } else { int count = data.get(temp); data.put(temp, count + 1); } } //查找 String find = "5"; if(data.get(find) != null && data.get(find) > 1) { System.out.println(find + "重复了" + (data.get(find) - 1) + "次"); } }} 用Set集合不是很好嘛,Set集合中是不会有重复的 用Set集合不是很好嘛,Set集合中是不会有重复的,这么好的东东 不用。非要找麻烦 String[] stringdata = ...; TreeMap<String,Integer> map = new TreeMap<String,Integer>(); for(String s: stringdata){ if(map.containsKey(s)){ map.put(s,map.get(s)+1); }else{ map.put(s,1); } } for(String s: map.keySet()){ System.out.println(s + ":" + map.get(s)); } import java.util.*;class StringProcesor{ private List<String> stringList = ArrayList<String>(); public void addString(String str){ if(this.stringList.contains(str)){ String message = "添加了重复的元素:"+str; javax.swing.JOptionPane.showMessageDialog(null,message); } stringList.add(str); }}需要记录添加次数的话,用HashMap比较方便 用txt写的..排版不是很好..实例化List那行少了new 关键字..献丑了 用Stirng[]中的元素左右Map的key,之后吧map的key取出来重新组成字符串数组 请教一个问题?为什么在MyEclipse里不能运行? java -cp -classpath 有什么区别啊? 这是个什么问题? 谁有Thinking in Java的配套光盘,发个给我好吗?我有FTP。谢谢 请教高手 :一个关于TextFiled的一个问题! 怎样在一个循环中判断用户是否按下了某个键 哪儿有java写的ftp搜索引擎的例子? 关于过滤器 怎样把\u9996\u9875的汉字编码,转换为汉字输出!谢了 变量的自增问题 java 正则表达式 怎么匹配HTML中,不包含在a标签中的img标签,并且捕获img标签src=""中双引号的值 MS Java 转换成 Sun Java
字符串作 key、出现次为 value
现在 我已经保存了HashMap 里面的值为
addStr= 2A addVal= 1
addStr= 2B addVal= 2
addStr= 2C addVal= 3 那我要怎样去循环比对唯一性呢~
你可以try set嘛,然后捕获 抛出重复键值de 异常 给出提示嘛
import java.util.Map;
import java.util.Random;
public class Main {
public static void main(String[] args) {
Map<String,Integer> data = new HashMap<String,Integer>();
//模拟添加数据,添加1到10之间的数字为主键,随机生成
Random random = new Random();
for(int i=0; i<20; i++) {
String temp = String.valueOf(random.nextInt(10));
if(data.get(temp) == null) {
data.put(temp, 1);
} else {
int count = data.get(temp);
data.put(temp, count + 1);
}
}
//查找
String find = "5";
if(data.get(find) != null && data.get(find) > 1) {
System.out.println(find + "重复了" + (data.get(find) - 1) + "次");
}
}
}
String[] stringdata = ...;
TreeMap<String,Integer> map = new TreeMap<String,Integer>();
for(String s: stringdata){
if(map.containsKey(s)){
map.put(s,map.get(s)+1);
}else{
map.put(s,1);
}
}
for(String s: map.keySet()){
System.out.println(s + ":" + map.get(s));
}
import java.util.*;
class StringProcesor{
private List<String> stringList = ArrayList<String>();
public void addString(String str){
if(this.stringList.contains(str)){
String message = "添加了重复的元素:"+str;
javax.swing.JOptionPane.showMessageDialog(null,message);
}
stringList.add(str);
}
}需要记录添加次数的话,用HashMap比较方便