簡體   English   中英

HashSet輸出不匹配[JAVA]

[英]HashSet Output not matching [JAVA]

該代碼是從文件讀取並生成HashSet,然后輸出到控制台。

我的代碼輸出與預期輸出不匹配。

我的java代碼是

Main.java

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader brf = new BufferedReader(new FileReader("calllog.txt"));


        Set<String> phoneNumberList = new HashSet<String>();


        String read = "";
        while ((read = brf.readLine()) != null) {

            String[] callList = read.split(",");


            String in = callList[0];
            phoneNumberList.add(in);     //add(new CallLog(callList[0], startTime, endTime));


        }
        brf.close();

        Iterator<String> itr = phoneNumberList.iterator();

        while(itr.hasNext()){
            System.out.println(itr.next());
        }


    }

}

calllog.txt

8123456789,10-10-2015 10:00:00,10-10-2015 10:28:59
8123456789,11-10-2015 11:00:00,10-10-2015 11:51:00
8123456789,12-10-2015 12:00:00,10-10-2015 12:10:35
9123456789,11-10-2015 11:00:00,11-10-2015 11:32:43
0422-201430,12-10-2015 12:00:00,12-10-2015 11:05:16
0422-201430,12-10-2015 12:06:00,12-10-2015 11:10:20
9764318520,13-10-2015 13:00:00,13-10-2015 10:10:15
0422-201430,12-10-2015 12:00:00,12-10-2015 12:05:16
0422-201430,13-10-2015 14:05:00,13-10-2015 14:15:00
0422-201430,15-10-2015 16:08:00,15-10-2015 16:35:57

我的輸出

9123456789
9764318520
0422-201430
8123456789

預期產量

8123456789
9764318520
0422-201430
9123456789

HashSet沒有排序,因此沒有理由讓您期望元素的某種排序。

如果要根據插入順序對元素進行排序,則可以使用LinkedHashSet ,但這將為您提供

8123456789
9123456789
0422-201430
9764318520

這不是您的預期訂單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM