0

.txt ファイルからすべての ID を読み取り、これらの ID を Vector に挿入します。

            String pathSelectedfile = fileChooser.getSelectedFile().getAbsolutePath();
            File selectedFile = new File(pathSelectedfile);
            Scanner readFile = new Scanner(selectedFile);

            Vector ids=new Vector();
            while (readFile.hasNextLine()) {
                String id= readFile.nextLine();
                ids.addElement(id);
            }

次に、Vector.i で複数の ID を削除したい for ループでそれを行うことができますが、情報が大きすぎます.tnx がたくさんあります

4

4 に答える 4

2

重複したIDを完全に削除してください。次を使用できます。

        Set<String> ids=new LinkedHashSet<String>();
        Set<String> duplicates=new HashSet<String>();
        while (readFile.hasNextLine()) {
            String id= readFile.nextLine();
            if(!ids.add(id)) {
                duplicates.add(id);
            }
        }
        ids.removeAll(duplicates)

Vectorとは異なり、LinkedHashSetは同期されないことに注意してください。ほとんどの場合、これは悪いことではありませんが、実際に同期する必要がある場合は、Collections.synchronizedSet()を使用してラップします。

于 2012-12-15T08:34:35.050 に答える
2

複数の値を削除するには

    Vector vector = new Vector();
    vector.add("value1");
    vector.add("value2");
    vector.add("value3");
    vector.add("value4");
    System.out.println("Size : "+vector.size());
    // to remove single value
    vector.remove("value1");
    System.out.println("Size : "+vector.size());
    Vector itemsToRemove = new Vector();
    itemsToRemove.add("value3");
    itemsToRemove.add("value4");
    //remove multiple values
    vector.removeAll(itemsToRemove);
    System.out.println("Size : "+vector.size());

    //to remove all elements
    vector.removeAllElements();
    // or
    vector.clear();

ただし、ベクターは廃止されたコレクションであるため、使用する代わりに使用をVector検討してください。ArrayListこれを読んでください:Java Vectorクラスが廃止または非推奨と見なされるのはなぜですか?

ArrayList<String> idList = new ArrayList()また、リストに文字列要素のみを格納する場合は、ジェネリック Like を使用します。

に要素を追加するときに重複をスキップする場合Vectorは、次のコードを使用します

   Vector vector = new Vector() {
        @Override
        public synchronized boolean add(Object e) {
            if(!contains(e)){
                return super.add(e);
            }
            System.out.println("Element " + e +" is duplicate");
            return false ;
        }
    };

ただし、一意の要素のみを追加する場合は、使用しますSet

于 2012-12-15T08:40:09.923 に答える
0

remove javadocを読み、 http://docs.oracle.com/javase/6/docs/api/java/util/Vector.htmlで始まるメソッドに注意してください。これは、SOではなく最初のアプローチである必要があります。

于 2012-12-15T08:32:13.690 に答える
0

「Vector で複数の ID を削除したい」場合は、次の手順を実行します。

ids = new Vector(new HashSet(ids))
于 2012-12-15T09:03:20.180 に答える