hier ist die mögliche Lösung. Ich habe versucht, es so allgemein wie möglich zu machen. Ich machte einige Annahmen .. ich. Ich habe die Datenbank nicht gesetzt. Ich füll das Node-Klassenobjekt über Konstruktor. In Ihrem Fall erstellen Sie das Node-Klassenobjekt nach der Datenbankzeile. Jede Zeile in der Datenbank entspricht einem Objekt der Node-Klasse.
public class Node {
private String mediName;
private String dayOfWeek;
private String expiry;
private String manufacturer;
public Node(String mediName,String dayOfWeek,String expiry,String manufacturer)
{
this.mediName=mediName;
this.dayOfWeek=dayOfWeek;
this.expiry=expiry;
this.manufacturer=manufacturer;
}
public String getMediName() {
return mediName;
}
public void setMediName(String mediName) {
this.mediName = mediName;
}
public String getDayOfWeek() {
return dayOfWeek;
}
public void setDayOfWeek(String dayOfWeek) {
this.dayOfWeek = dayOfWeek;
}
public String getExpiry() {
return expiry;
}
public void setExpiry(String expiry) {
this.expiry = expiry;
}
public String getManufacturer() {
return manufacturer;
}
public void setManufacturer(String manufacturer) {
this.manufacturer = manufacturer;
}
}
Die folgende Klasse ist so konzipiert, dass sie als Warteschlangendatenstruktur funktioniert.
public class QueueNode {
private int front=-1;
private int rear=-1;
private int capacity;
private Node[] arr;
public QueueNode(int capacity)
{
this.capacity=capacity;
arr=new Node[capacity];
}
private boolean isEmpty()
{
return front==-1;
}
private boolean isFull()
{
return (rear+1)%capacity==front;
}
public void push(Node data) throws Exception
{
if(isFull())
throw new Exception("Queue is Full");
else
{
rear=(rear+1)%capacity;
arr[rear]=data;
if(front==-1)
front=rear;
}
}
public Node pull() throws Exception
{
Node data=null;
if(isEmpty())
{
throw new Exception("Queue is Empty");
}else
{
data=arr[front];
if(front==rear)
front=rear-1;
else
{
front=(front+1)%capacity;
}
}
return data;
}
}
die Funktion der folgenden Klasse Knoten und QueueNode Klasse zu testen ..
public class MainClassForQueue {
public static void main(String[] args) throws Exception {
Node n1=new Node("A","1000000","2017-02-16","ABC");
Node n2=new Node("B","1100000","2017-02-16","ABC");
Node n3=new Node("C","0100000","2017-02-16","ABC");
Node n4=new Node("D","0010000","2017-02-16","ABC");
Node n5=new Node("F","1010000","2017-02-16","ABC");
Node n6=new Node("G","0000001","2017-02-16","ABC");
Node n7=new Node("H","0000011","2017-02-16","ABC");
Node n8=new Node("I","0001000","2017-02-16","ABC");
Node n9=new Node("J","0000100","2017-02-16","ABC");
Node n10=new Node("K","0000010","2017-02-16","ABC");
Node n11=new Node("L","1010101","2017-02-16","ABC");
Node n12=new Node("M","1001011","2017-02-16","ABC");
Node n13=new Node("N","1111111","2017-02-16","ABC");
List<Node> listNode=new ArrayList<Node>();
listNode.add(n1);
listNode.add(n2);
listNode.add(n3);
listNode.add(n4);
listNode.add(n5);
listNode.add(n6);
listNode.add(n7);
listNode.add(n8);
listNode.add(n9);
listNode.add(n10);
listNode.add(n11);
listNode.add(n12);
listNode.add(n13);
int size=listNode.size();
QueueNode queue=new QueueNode(7*size);
for(int j=0;j<7;j++)
{
for (int i = 0; i < listNode.size(); i++) {
Node data=listNode.get(i);
String day=data.getDayOfWeek();
if(day.charAt(j)=='1')
queue.push(data);
}
}
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
}
}
warum nicht verfügbar verwenden Queue in Sammlung Rahmen des Java? – eatSleepCode
@eatSleepCode Worüber reden Sie? Ich weiß nicht, was "Java Collection Framework" ist. Bitte kannst du es erklären? –
Ich hoffe, Sie können die Zeilen aus Db Reihenfolge nach day_of_week_to_take auswählen .. Wenn nicht, wie Sie die Zeilen bekommen? – kaushik