我有一个充满IP地址范围的文本文件.我使用ip2long将地址转换为longs,这样我就可以轻松检查给定地址是否在范围内.但是,我正在寻找一种有效的方法来存储这些范围,然后搜索以查看任何范围内是否存在IP地址.
我想到的当前方法是创建一个具有范围的低端和高端的对象,其功能是检查该值是否在范围内.我会将这些对象存储在列表中并检查每个对象.但是,我觉得这可能有点低效,随着列表的增加可能会变慢.
有没有比我想的更好的方式?
解决方法:
以下数据结构之一可以帮助您:
细分树
Is a tree data structure for storing intervals, or segments. It allows querying which of the stored segments contain a given point.
间隔树
Is a tree data structure to hold intervals. Specifically, it allows one to efficiently find all intervals that overlap with any given interval or point.
范围树
Is an ordered tree data structure to hold a list of points. It allows all points within a given range to be reported efficiently.
标签:java,performance,algorithm 来源: https://codeday.me/bug/20190829/1758814.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。