Java 使用ListIterator删除重复项 /**返回L中多次出现的所有项目的列表。 *每个项目在结果中显示一次。 */ 静态列表副本(列表L){ ArrayList结果=新建ArrayList(); int n; n=0; for(ListIterator p1=L.ListIterator();p1.hasNext(); n+=1){ 字符串x=p1.next(); if(结果包含(x)){ 继续; } int m; m=L.尺寸()-1; for(ListIterator p2=L.ListIterator(L.size()); m>n;m-=1){ if(x.equals(p2.previous())){ 结果:添加(x); 打破 } } } 集合。排序(结果); 返回结果; }
我试图修改这段代码,这样我就不会使用除了result、p1和p2之外的任何其他变量。这就是我现在所拥有的,但我对如何解决这个问题感到迷茫Java 使用ListIterator删除重复项 /**返回L中多次出现的所有项目的列表。 *每个项目在结果中显示一次。 */ 静态列表副本(列表L){ ArrayList结果=新建ArrayList(); int n; n=0; for(ListIterator p1=L.ListIterator();p1.hasNext(); n+=1){ 字符串x=p1.next(); if(结果包含(x)){ 继续; } int m; m=L.尺寸()-1; for(ListIterator p2=L.ListIterator(L.size()); m>n;m-=1){ if(x.equals(p2.previous())){ 结果:添加(x); 打破 } } } 集合。排序(结果); 返回结果; },java,list,duplicates,listiterator,Java,List,Duplicates,Listiterator,我试图修改这段代码,这样我就不会使用除了result、p1和p2之外的任何其他变量。这就是我现在所拥有的,但我对如何解决这个问题感到迷茫 /** Return a list of all items in L that appear more than once. * Each item appears once in the result. */ static List<String> duplicates(List<String> L) { ArrayLis
/** Return a list of all items in L that appear more than once.
* Each item appears once in the result.
*/
static List<String> duplicates(List<String> L) {
ArrayList<String> result = new ArrayList<String>();
int n;
n = 0;
for (ListIterator<String> p1 = L.listIterator(); p1.hasNext();
n += 1) {
String x = p1.next();
if (result.contains(x)) {
continue;
}
int m;
m = L.size() - 1;
for (ListIterator<String> p2 = L.listIterator(L.size());
m > n; m -= 1) {
if (x.equals(p2.previous())) {
result.add(x);
break;
}
}
}
Collections.sort(result);
return result;
}
ListIterator p1=L.ListIterator();
while(p1.hasNext()){
字符串x=p1.next();
如果结果包含(x)){
继续;
}
既然您必须删除重复项,那么您使用ArrayList
有什么原因吗
这可以在一条线上解决您的问题
ListIterator<String> p1 = L.listIterator();
while (p1.hasNext()) {
String x = p1.next();
if result.contains(x)) {
continue;
}
由于您必须删除重复项,您是否有理由使用
ArrayList
这可以在一条线上解决您的问题
ListIterator<String> p1 = L.listIterator();
while (p1.hasNext()) {
String x = p1.next();
if result.contains(x)) {
continue;
}
这也可以满足您的需要:
List noDuplicates=newarraylist(newtreeset(initialList));
这也可以满足您的需要:
List noDuplicates=newarraylist(newtreeset(initialList));
这非常复杂。您可以使用for(String s:List)
构造来帮自己一个忙。您可能还需要使用集合来帮助查找重复项。下面是解决方案的外观
for(String s : p1)
{ // do some operation with the String you got here. }
Set items=newhashset();
设置重复项=新树集();
for(字符串s:L){
如果(!items.add){
//在这里收集你的副本
重复。添加;
}
}
这非常复杂。您可以使用for(String s:List)
构造来帮自己一个忙。您可能还需要使用集合来帮助查找重复项。下面是解决方案的外观
for(String s : p1)
{ // do some operation with the String you got here. }
Set items=newhashset();
设置重复项=新树集();
for(字符串s:L){
如果(!items.add){
//在这里收集你的副本
重复。添加;
}
}
是否要删除重复项或返回包含重复值的列表?我要删除所有重复项。结果应该是文件中的单词(字符串)列表,减去重复项。是否要删除重复项或返回包含重复值的列表?我要删除所有重复项。结果应该是单词列表(字符串)在文件中,减去重复项。我想如果输出应该被排序,它将需要一个树集。如果输出应该被排序,我想它将需要一个树集。这似乎会起作用,但我仍然不知道如何做。@JisooHan你需要导入它。谷歌如何使用arrayList和导入列表这似乎会ld工作,但我仍然不知道如何做。@JisooHan你需要导入它。谷歌如何使用arrayList和导入列表