LinkedList, TreeSet 및 HashSet 클래스를 java로 랩핑하기 위해이 Facade를 구현하고 있습니다. 포함 된 기능에 외관 구현의 ConcurrentModificationException
import java.util.Iterator;
public class CollectionFacadeSet implements SimpleSet{
protected java.util.Collection<java.lang.String> collection;
private Iterator<java.lang.String> iterator;
private int count;
/**
* Creates a new facade wrapping the specified collection.
* @param collection - The Collection to wrap.
*/
public CollectionFacadeSet(java.util.Collection<java.lang.String> collection){
this.collection=collection;
iterator = this.collection.iterator();
count=0;
}
/**
* Add a specified element to the set if it's not already in it.
* @param newValue New value to add to the set
* @return False iff newValue already exists in the set
*/
public boolean add(java.lang.String newValue){
if(contains(newValue))
return false;
collection.add(newValue);
return true;
}
/**
* Look for a specified value in the set.
* @param searchVal Value to search for
* @return True iff searchVal is found in the set
*/
public boolean contains(java.lang.String searchVal){
while(iterator.hasNext())
{
java.lang.String myString=iterator.next(); //issue
System.out.println(myString);
if(myString.equals(searchVal))
return true;
}
return false;
}
, 나는 다음 (현재) 개체를 호스트하기 위해 문자열을 만드는거야 한 번, 내가받을 다음과 같은 오류 :
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:966)
at java.util.LinkedList$ListItr.next(LinkedList.java:888)`
나는 다음 한 꽤 많은 방법의를 다른 질문에 작성하지만 내 루프가 여전히 예외를 throw 나타납니다.
당신이 이름을 완전히 자격을하는 이유는 무엇입니까? 'java.lang.String'은 필요하지 않습니다. 그냥'String'을 사용하십시오. 'java.util.Collection;을 임포트 할 필요가 있지만'java.util.Collection' 대신'Collection'을 쓸 수 있습니다. –
이것이 우리 대학 직원이 원하는 방식입니다. 또한 3 일 전까지 반복자가없는 컬렉션을 반복하도록 요청했습니다. \ – tamir