首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Hexadecimals和Java集合框架选择

使用Hexadecimals和Java集合框架选择
EN

Stack Overflow用户
提问于 2015-02-26 22:29:53
回答 2查看 71关注 0票数 0

我使用一个包含20个十六进制值的输入文件。我必须读取这些对并将它们存储在适当的Java集合中,然后按照它们的十六进制值的递增顺序对它们进行排序,并使用迭代器将排序后的对显示到控制台。我的问题是哪个收藏最好使用?HashMap?LinkedList?树?等等,它们看起来都是很好的选择,但我无法决定怎样才能更有效。

代码语言:javascript
复制
#FF0000 //red
#000084 //blue
#00FF00 //green
#FFFF00 //yellow
#FF8C00 //Orange
#FFC0CB //Pink
#D3D3D3 //Grey
#964B00 //Brown
#800080 //Purple
#000000 //Black
#013220 //Dark green
#8B0000 //Dark Red
#00008B //Dark blue
#D97700 //Dark Orange
#363737 //Dark grey
#471E8A //Dark Purple
#7f7f00 //Dark yellow
#FFFFCC //Light Yellow
#C0D9D9 //Light Blue
#D8BFD8 //Light Purple
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-26 22:35:39

我将创建一个类来封装数据,这将实现可比较的接口。

代码语言:javascript
复制
public class HexColor implements Comparable<HexColor>{
    private String hexCode;
    private String name;

    //Constructor, getters and setters
...
    public int compareTo(HexColor other){
        return this.hexCode.compareTo(other.hexCode);
    }
}

然后,您可以将其放到List中,并通过Collections类对其进行排序:

代码语言:javascript
复制
List<HexColor> colors = new ArrayList<HexColor>();
colors.add(new HexColor("#00xxxx", "color 1"));
colors.add(new HexColor("#00xxxx", "color 1"));
...
Collections.sort(colors);
//Some print in loop here

..you将从文件中读取这些

注:未测试。我假设任何地方都有理智的值,所以没有NP检查。

票数 2
EN

Stack Overflow用户

发布于 2015-02-26 22:46:07

你有一张成双成对的单子。您可以使用带有十六进制代码的Map作为键和名称作为值。键需要排序,所以您需要一个SortedMap (如TreeMap. )--如果在插入前对键使用Integer.parseInt("xxxxxx", 16),则可能是TreeMap<Integer, String>,这比将它们保留为字符串提供了更好的性能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28754022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档