파일의 각 행을 읽는 동안 목록을 채우는 중 ArrayList에 중복 항목이 추가되는 것을 방지하려고합니다. 파일의 각 행은 "node1 node2"(탭 구분 기호) 형식입니다. 여기서 복제본은 "node1 node2"또는 "node2 node1"이 될 수 있습니다. 여기에 시도하고이 작업을 수행하려면 코드입니다 :JAVA : ArrayList에 대한 중복 항목 방지
while((line = bufferedReader.readLine()) != null) {
String delimiter = "\t";
String[] tempnodelist;
tempnodelist = line.split(delimiter);
for (int i=0; i <= edgesnumber; i++) { //edgesnumber = edges.size()
if (tempnodelist[0] && tempnodelist[1] != edges.get(i)) {
edges.add(line);
}
}
nodes.add(tempnodelist[0]);
nodes.add(tempnodelist[1]); //intial intended use of tempnodelist.
} 이미 각 노드의 HashSet의를 만들기 위해 각 라인을 분할하고있어 이후
, 나는 중복 확인하기 위해 이것을 사용하려고 해요 . 지금은 구문에 대한 권리를 얻지 못하고 있습니다. 어떻게 중복에 대한 ArrayList의 이전 항목을 통해 확인할 수 있으며, ArrayList를 채우기를 계속 whist 추가되지 않도록? 현재이 코드에 어떤 문제가 있습니까?
불명확 한 점이 있으면 무엇이든지 문의하십시오.
미리 감사드립니다. LinkedHashSet
예측 가능한 반복 순서 (삽입 순서)를 가지고 있으며이 때문에 Set
는, 당신은'Set' 아닌'List' 할 것입니다. –
하지만 항목은 되돌릴 수 있으며 여전히 사본으로 간주됩니다 ... 설정하면 표시되지 않겠습니까? – user2941526
Set는'equals()'를 사용하여 중복 된 것을 찾습니다. 집합에 넣을 개체에 대한 특정 클래스를 만들고이 클래스에서 equals()를 다시 정의해야합니다. –