【问题标题】:Android find repeat values in ArrayList [duplicate]Android在ArrayList中查找重复值[重复]
【发布时间】:2017-03-16 00:36:43
【问题描述】:

有一个这样的 ArrayList。想知道重复了多少个值: 示例:人:4 次,女孩:4 次

public ArrayList<String> new_contains_all= new ArrayList<>();

...

[[laying, beautiful, brushing, group, young, head, bed, close, couple, female, teeth, white, indoor, pair, holding, sunglasses, stuffed, wearing, posing, dress, person, hair, standing, looking, girl, red, playing, made, top, woman, lady, hat, clothing, goggles, people],
     [person, hair, young, shirt, looking, phone, girl, white, glasses, food, sunglasses, wearing, woman, hat], [blue, beautiful, person, cake, standing, young, shirt, black, female, board, girl, white, photo, holding, ready, wearing, top, posing, woman, lady, smiling, clothing, dress, suitcase], [street, clock, light, stop, sign, red, text, sitting,
     man, photo, traffic], [blue, person, young, looking, phone, sitting, female, girl, photo, computer, using, red, laptop, holding, glasses, food, sunglasses, wearing, top, woman, lady, hat]]

通知 Array 里面有 5 个元素。

已经尝试过了,这应该适用于简单的 ArrayList,但每个元素有超过 1 个字符串,这令人毛骨悚然,我知道解决方案必须在键内实现另一个 bucle,但今天太累了:/ 也许有人让我眨眼:P

List<String> l = new_contains_all;
Set<String> s = new HashSet<String>(l);
for (String key : s) {
    int count = Collections.frequency(l, key);
    if (count > 1)
        System.out.println("Found '" + key + "' " + count + " times."+"key: "+key.toString()+"l: "+l.toString());
}

【问题讨论】:

  • 提示:你得到的名字真的很糟糕。 A) 你不使用 _ 作为 Java 名称(SOME_CONSTANT 除外) B) 单字符名称很糟糕;他们唯一的地方是一些 for loop int counter i, j, ...
  • 感谢您的回答,只是一个随机名称的测试,@marmor 不是同一个问题,ofc 我已经看到了这个条目

标签: java android arraylist


【解决方案1】:

您几乎解决了您的问题,但您的代码中有一个细微的错误:

Set<String> s = new HashSet<String>(l);

Set 的核心属性是:它不允许重复。因此,这一次调用只是从输入列表 l 中删除所有重复项。

因此:所有频率都是一个

因此,您可以这样做:

for (String singleWord: new_contains_all) {
  count = Collections.frequency(new_contains_all, singleWord);
...

【讨论】:

  • 感谢您的帮助@GhosCat,但没有工作,我有同样的问题,我的 ArrayList 有点不同:这是您更改的输出:pastebin.com/PTUn4rN7 SimpleWord 有时具有更多值您可以在顶部看到,但仅对一个(文本)或多个值不能正常工作..
  • 抱歉,我不确定您的问题出在哪里。你看,你在这里提供的信息简直是不清楚。请阅读stackoverflow.com/help/mcve ...然后准确提供该信息!而且,只是猜测:你确定你有一个单一的字符串列表吗?而不是一些列表?
  • +1,谢谢,我的第一个传入结构是 ArrayList> 并试图解决这个问题,我搬到了一个单一的 ArrayList 中,产生了这种单一的列表有时不止一项。
  • 当然,您不能像平面列表那样迭代列表列表。但又一次;你的意见还不清楚。您应该更新您的问题以显示您实际处理的数据结构。我们无法帮助您解决您未明确向我们提出的问题。
猜你喜欢
  • 2011-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-19
  • 2013-05-30
相关资源
最近更新 更多