java - 根据字符串的第一个字符从 ArrayList 中删除重复项

标签 java arraylist

我想从数组列表中删除第一个字符与另一个字符串相同的字符串。

示例

List<String> collection = new ArrayList<String>();

collection.add("1 w a");
collection.add("2 r a");
collection.add("1 r b");
collection.add("2 r b");
collection.add("3 w a");

输出

collection = ["1 w a", "2 r a", "3 w a"]

我尝试使用 hashsetlinkedhashset

最佳答案

使用最少的第一个字符存储,您可以执行查找和删除重复项:

List<Character> dups = new ArrayList<Character>();
        Iterator<String> itr = collection.iterator();
        while(itr.hasNext()) {
            String s = itr.next();
            char c = s.charAt(0);
            if(dups.contains(c)) {
                itr.remove();
                continue;
            }
            dups.add(c);
        }
        System.out.println(collection);

输出:

[1 w a, 2 r a, 3 w a]

关于java - 根据字符串的第一个字符从 ArrayList 中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20188776/

相关文章:

java - 向随机数数组中的随机位置插入一个数字

java - 从 Java 8 中的流中收集同步数组列表

java - 使用 SwingWorker 在后台执行复杂任务

java - Android:将ListView数据存储在Hashmap<String, String>的ArrayList中

java - 如何从 Solr 获取整个数据

java - 如何获得至少一定大小的列表分组的所有组合?

java - 2 不同的项目添加到ArrayList,但最新的项目被创建了两次?

Java/Android-在TCP/IP套接字编程中如何使用ObjectOutputStream写入大尺寸的List对象

java - 我怎样才能改变<wsdl SOAP :address location =""> at runtime

java - fork 线程并没有加快我的程序,我在我的情况下是否正确使用它?