我有一个ArrayList
包含从数据库中检索到的字符串。字符串是博客各个帖子的标签,例如:
video, java, php, xml,
css, java, foo, bar,
xml, php, foo, bar, dog
我试图遍历列表。用逗号将每个字符串拆分成一个数组,并检查我的uniqueTag数组是否包含split数组中的元素。如果没有,请将其添加到uniqueTag数组。
这是我有多远:
List<String> tagList = conn.getAllTags();
String[] uniqueTags;
for(String item: tagList){
// split the row into array of comman seperated elements
String[] splitItem = item.split(",");
for(int i=-1; i<=splitItem.length; i++){
// compare this element with elements in uniqueTags
// and if it doesn't exit in uniqueTags
// add it.
}
}
如何比较并动态构建uniqueTags数组?
答案 0 :(得分:3)
我会使用Set<String>
来防止重复值。
有些事情:
Set<String> uniques = new HashSet<String>();
for(String item: tagList){
// split the row into array of comman seperated elements
String[] splitItem = item.split(",");
for (String item: splitItem) {
uniques.add(item.trim()); // trimming whitespace and adding to set
...
答案 1 :(得分:1)
你为什么不尝试这样的事情。
创建List<String>
splitIteams拆分项并执行
List<String> distinct = splitItems.stream().distinct().collect(Collectors.toList());
System.out.printf("Split Items : %s, Distinct list : %s ", splitItems, distinct);
编辑 - 删除了一个额外的%s
答案 2 :(得分:0)
public static void compareArrays(int[] array1, int[] array2) {
boolean b = true;
if (array1 != null && array2 != null){
if (array1.length != array2.length)
b = false;
else
for (int i = 0; i < array2.length; i++) {
if (array2[i] != array1[i]) {
b = false;
}
}
}else{
b = false;
}
System.out.println(b);
}