首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据子字符串获取唯一列表元素

根据子字符串获取唯一列表元素
EN

Stack Overflow用户
提问于 2012-12-18 07:39:01
回答 4查看 758关注 0票数 2

我有一个ArrayList(String),其中包含如下所示的格式化日期列表:

代码语言:javascript
复制
element 1: "2012-5-1"
element 2: "2012-8-10"
element 3: "2012-12-5"
element 4: "2013-12-21"
element 5: "2013-12-13"
element 6: "2014-5-8"

创建包含唯一年份条目的另一个列表或普通原语数组的最有效/框架方法是什么?例如,我的新列表将包含:

代码语言:javascript
复制
element 1: "2012"
element 2: "2013"
element 3: "2014"
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-12-18 08:50:13

尝尝这个

代码语言:javascript
复制
ArrayList<String> yearsOnlylist = new ArrayList<String> ();
for(String s : elements) {
    String yearExtracted = s.substring(0,4);
    yearsOnlylist.add(yearExtracted);
}

其中elements是扩展表单中日期列表的名称。

用作目标列表

代码语言:javascript
复制
 LinkedList<String> yearsOnlylist = new LinkedList<String> ();

与ArrayList相比,可以显著提高转换效率(因为在LinkedList中add是O(1)),但在第二次访问特定位置时效率较低(O(n) vs O(1) )。

票数 3
EN

Stack Overflow用户

发布于 2012-12-18 07:40:58

只需将它们添加到集合中,并将其转换为列表:

代码语言:javascript
复制
Set<String> unique = new HashSet<String>();
for (String element : elements) {
    set.put(element.substring(0,4));
}
List<String> uniqueList = new ArrayList<String>();
uniqueList.addAll(unique);
票数 2
EN

Stack Overflow用户

发布于 2012-12-18 07:42:21

迭代数组列表,并获取数组列表中每个成员的前4个字符的子字符串。

将该子字符串添加到一个集合实现中,例如HashSet,它将为您提供所需的内容。

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

https://stackoverflow.com/questions/13924104

复制
相关文章

相似问题

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