gpt4 book ai didi

java - 如何创建一个仅返回 Java 中不同元素的迭代器?

转载 作者:行者123 更新时间:2023-11-30 04:54:24 24 4
gpt4 key购买 nike

问题的更多详细信息:我需要为字符串堆栈创建一个迭代器,该迭代器使用 ArrayList,在将文件中的单词全部小写后仅返回不同的单词,并为此使用扫描仪。我必须最后对数组进行排序。我必须为这个问题创建两个单独的类。

这是我到目前为止所拥有的:

import java.io.*;
import java.util.*;

public class StackClass
{
static StringSet stringStack;
static Scanner console = new Scanner(System.in);
public static void main(String[] args)
{


stringStack = new StringSet();

System.out.println("Please input the filename: ");
String fileName = console.next();

try {
FileReader file = new FileReader(fileName);
Scanner input = new Scanner(file);
while (input.hasNext())
{
input.useDelimiter("\\W");
//lcString.toLowerCase();
(I commented this out^ until I figure it out)
stringStack.add(input.next());

}
}
catch (FileNotFoundException e) {e.printStackTrace();}
}
}

这是我的另一门课:

import java.util.*;

public class StringSet implements Iterable<String>
{
static Stack<String> stringStack;
private ArrayList<String> stackList = new ArrayList<String>();


//for loop goes through all the words in stack
//if the word is found then ignore it, if not add it to the stack
public String add(String s)
{
for(int i=0;i>0;i++)
{
stringStack.push(s);
}
return s;
}


public int size( int i)
{
return stringStack.size();
}

public Iterator<String> iterator()
{return new WordIterator();}

class WordIterator implements Iterator<String>
{
private int i=0;
public boolean hasNext(){return i>0;}
public String next(){return stackList<String>;}
}
}

最佳答案

如果问题是“如何仅通过唯一的单词进行迭代”,我会简单地对单词使用 HashSet,然后将单词插入堆栈

1) 如果该单词在 HashSet 中,则不要将其推送。2)如果该单词不在HashSet中,则将其插入HashSet中。

如果需要跟踪出现的次数,可以使用 HashMap 而不是 HashSet,这样会增加遇到的重复字符串的数量。

如果您需要保留某些内容的顺序和出现次数,我会保留一个单独的非唯一堆栈,将所有内容推送到其中。

我希望我正确理解了您的问题。

关于java - 如何创建一个仅返回 Java 中不同元素的迭代器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8995723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com