我想打印所有独特元素并打印原始列表,但它只打印出不同的元素,帮助我继承我的代码......
static ArrayList<String> removeDuplicates(ArrayList<String> list) {
// Store unique items in result.
ArrayList<String> result = new ArrayList<>();
// Record encountered Strings in HashSet.
HashSet<String> set = new HashSet<>();
// Loop over argument list.
for (String item : list) {
// If String is not in set, add it to the list and the set.
if (!set.contains(item)) {
result.add(item);
set.add(item);
}
}
return result;
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
ArrayList<String> words = new ArrayList<String>();
words.add("full");
words.add("fill");
words.add("full");
words.add("fall");
words.add("fill");
words.add("fell");
words.add("fall");
ArrayList<String> unique = removeDuplicates(words);
for (String element : unique) {
System.out.print("\t" +element);
}
}
}
输出必须是:
列表中的元素[完整,填充,填充,填充,掉落,填充,掉落,掉落]
区分元素[满,填,跌,跌]答案 0 :(得分:1)
通过测试( if ! set.contains(item) )
来消除重复项
所以你会得到这个结果:
full , fill , fall , fell
如果你想得到结果:
full,fill,fill,full,fall,fill,fell,fall
你不应该测试( ! set.conaitns(item) )
答案 1 :(得分:0)
嗯,当然它没有打印原始列表。你没有写任何代码来做到这一点。
答案 2 :(得分:0)
使用Java 8,您可以使用Stream API为您完成。
我相信这可以简单地完成:
list.stream().distinct().collect(Collectors.toList());
答案 3 :(得分:-1)
公共类UniqueArrayList {
公共静态无效的主要(字串[] args){
列表initialList = Arrays.asList( “易趣”, “贝宝”, “谷歌”, “易趣”, “谷歌”, “贝宝”);
System.out.printf(“\ nInitial list:%s%n”,initialList);
sortlist中(initialList);
}
公共静态无效sortlist中(列表myList中){
设置hashsetList = newHashSet(myList中);
System.out.printf(“\ n使用HashSet的唯一值:%s%n”,hashsetList);
}
}
输出如下: -
初始列表:[易趣,贝宝,谷歌,易趣,谷歌,贝宝]
使用HashSet的唯一值:[谷歌,贝宝,易趣]