Java 填充队列
我不知道如何用没有队列参数的方法填充我的类。这很难解释Java 填充队列,java,Java,我不知道如何用没有队列参数的方法填充我的类。这很难解释 package com.company; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; public class Phrase { private Queue queue = new LinkedList(); public Phrase(Queue queue) { this.q
package com.company;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;
public class Phrase {
private Queue queue = new LinkedList();
public Phrase(Queue queue)
{
this.queue = queue;
}
public void enqueue(Bigram b)
{
this.queue.add(b);
}
public Bigram dequeue()
{
return (Bigram)queue.poll();
}
public Bigram peak()
{
return peak();
}
public int size()
{
return queue.size();
}
public boolean isEmpty()
{
if(queue.peek() != null)
return true;
else
return false;
}
public static Phrase buildPhraseFromString(String s)
{
s = s.replaceAll("\\s+","");
ArrayList<Character> sArray = new ArrayList<>();
for(int i = 0; i < s.length(); i++)
{
sArray.add(s.charAt(i));
}
Queue<Bigram> queue = new LinkedList<>();
Phrase phrase = new Phrase(queue);
int i = 0;
while(i + 2 <= sArray.size())
{
Bigram b = new Bigram(sArray.get(i),sArray.get(i+1));
if(sArray.get(i) == sArray.get(i+1))
{
sArray.add(i+1,'X');
b = new Bigram(sArray.get(i),sArray.get(i+1));
System.out.println(sArray.toString());
}
i = i + 2;
queue.add(b);
}
if(i != sArray.size())
{
Bigram b = new Bigram(sArray.get(sArray.size()-1),'X');
queue.add(b);
}
System.out.println(queue.toString());
while(!queue.isEmpty()) {
phrase.enqueue(queue.remove());
queue.remove();
}
System.out.println(phrase.toString() + "DSADASD");
return phrase;
}
public String toString()
{
return queue.toString();
}
/*
public Phrase encrypt(KeyTable key)
{
}
public Phrase decrypt(KeyTable)
{
}
*/
}
我是专门谈论排队的方法。我被告知只留下Bigram作为我的参数。那么我该如何更新我的短语呢?不将队列作为参数。我通常会创建一个方法,该方法将队列中的参数作为参数,并将Bigram作为参数。您能详细说明一下吗?你到底想实现什么?我正试图将包含birgram对象的队列添加到短语中,不知为什么,但当我打印出
phrase.toString()
时,它是队列的精确副本。不过我还没有添加任何内容
package com.company;
public class Bigram{
private char first, second;
public Bigram(char first, char second)
{
this.first = first;
this.second = second;
}
public char getFirst()
{
return this.first;
}
public void setFirst(char first)
{
this.first = first;
}
public char getSecond()
{
return this.second;
}
public void setSecond(char second)
{
this.second = second;
}
public String toString()
{
return String.valueOf(first) + String.valueOf(second);
}
}