본문의 궤적을 나타내는 csv 데이터 파일이 있습니다. 형식은 t, x, y, x입니다. 매번 파일을 읽지 않고 주어진 시간에 좌표에 쉽게 액세스하기 위해 일종의 HashMap에 그 입자의 히스토리를 저장하려고합니다. 내 두려움은 키와 값이 원시 타입이 아닌 객체라는 것입니다. 그래서, 이런 식으로하는 것이 좋은 생각입니까? 예를 들어 HashMap을 채우려면 Doubles가 전역 적으로 정의되어 연속적인 액세스를 위해 주소가 잘 정의되어 있어야한다고 생각합니다. 맞습니까?double 키를 Java에서 키로 사용하는 방법
답변
IdentityHashMap
과 같은 ID 맵을 제외한 맵은 equals()
메서드를 사용하여 주요 동등성을 검사합니다.
그래서,만큼 equals()
방법의 의미에 의해 정의 된 「등가 "만큼 서로 다른 인스턴스를 사용할 수있다 .. (해시 대한만큼 hashcode
방법 equals
와 조리로 매핑)하여 더블 대하여 두 이러한 요구 사항은 Double
입니다.
그러나 이중 숫자는 정밀도를 잃을 수 있으므로 일종의 계산으로 얻은 두 배를 사용하면 소수점이 다를 수 있습니다 (예 : 8.999999 및 9). 지도가 제대로 작동하지 않습니다.
고마워요! 범위 문제는 어떻습니까? while 루프에서 맵을 채우고 프로그램이 끝날 때 루프 내에서 Doubles가 만들어지면 오브젝트가 범위를 벗어나서 파괴됩니다. – bluePhlavio
지도에서 키로 사용되는 경우 맵은 해당 맵에 대한 참조를 가지므로 맵이 범위를 벗어나지 않는 한 루프를 종료하더라도 느슨하게되지는 않습니다. 너는 묻고있어. –
네, 고맙습니다 ... – bluePhlavio
- 1. 긴 varchar 키를 조회 키로 사용하는 방법
- 2. Java에서 double 값을 반올림하는 방법
- 3. 합성 키를 외래 키로 사용하는 방법은 무엇입니까?
- 4. Windows 오른쪽 Ctrl 키를 왼쪽 Ctrl 키로 사용하는 방법?
- 5. pygtk에서 다른 키로 누른 키를 변환하는 방법
- 6. Java에서 고유 키를 생성하여 Oracle 테이블의 기본 키로 사용
- 7. Java에서 Double 선언하기
- 8. Java에서 Numerical Double Integration
- 9. Java에서 RSA 비공개 키로 암호화
- 10. Java에서 키를 눌렀는지 확인하는 방법
- 11. 공개 키를 Java에서 누르는 방법
- 12. Java에서 keyListener를 올바르게 사용하는 방법
- 13. Java에서 \ n을 올바르게 사용하는 방법
- 14. Java에서 공유 키를 사용하는 암호화/암호 해독?
- 15. Golang지도의 키로 기능을 사용하는 방법
- 16. 해시에서 단어를 키로 사용하는 방법
- 17. 두 개의 숫자를 Map 키로 사용하는 방법
- 18. Java에서 HashMap의 키로 문자열 대체의 역 참조를 사용하는 방법은 무엇입니까?
- 19. 공백이 포함 된 키로 PropertyResourceBundle을 사용하는 방법
- 20. 대리 키를 외래 키로 사용
- 21. Java에서 Merge double type 배열
- 22. 스캐너 입력을 Java에서 사용하는 방법
- 23. 는 그루비의지도 키로 java.util.Date를 사용하는 방법
- 24. Java에서 socket을 사용하는 방법
- 25. Java에서 생성자를 사용하는 방법?
- 26. @Transactional을 Java에서 사용하는 방법
- 27. Java에서 쓰레드를 사용하는 방법
- 28. Java에서 암호화를 사용하는 방법?
- 29. Java에서 LibSVM을 사용하는 방법?
- 30. Java에서 Telnet을 사용하는 방법
예 Double을 키로 사용할 수 있습니다 ... – Ajit
Double을 키로 사용할 수 있습니다. 그러나 정밀도의 문제가있을 수 있습니다. 지도에 값 0.00001의 키가 있고 키 0.000099가 있는지 알고 싶다면 어떻게해야할까요? – Eran
일반적으로 시간은 긴 값으로 표시됩니다. 시간에 따라 좌표를 찾는 데 관심이 있으시다면, 귀하의 키는 Double이 아닌 Long이 될 것입니다. – ControlAltDel