/Users/johnr/Desktop/IA_14_-_Stage_P_Upload_all_2021-04-08/CSIA14829 - Jane April 6th/src/csia14829/SortAndSearch.java |
1 package csia14829;
2
3 import java.util.ArrayList;
4
5
6
7
8
9
10
11
12
13 @author
14
15 public class SortAndSearch {
16
17 public void switchElements(Item[] itemsQueue, int index1, int index2){
18 Item temp = itemsQueue[index1];
19 itemsQueue[index1] = itemsQueue[index2];
20 itemsQueue[index2] = temp;
21 }
22
23
24 public void sortByName(Item[] itemsQueue, int counter) {
25 int n = counter;
26 boolean sorted = false;
27 while (!sorted) {
28 n--;
29
30
31 sorted = true;
32 for (int i=0; i < n; i++) {
33 if(itemsQueue[i].getName().compareToIgnoreCase(itemsQueue[i+1].getName()) > 0) {
34 switchElements(itemsQueue, i, (i+1));
35 sorted = false;
36
37 }
38 }
39
40 }
41 }
42
43 public void sortByType(Item[] itemsQueue, int counter) {
44 int n = counter;
45 boolean sorted = false;
46 while (!sorted) {
47 n--;
48 sorted = true;
49 for (int i=0; i < n; i++) {
50 if (itemsQueue[i].getItemType().compareToIgnoreCase(itemsQueue[i+1].getItemType()) > 0) {
51 switchElements(itemsQueue, i, (i+1));
52 sorted = false;
53 }
54 }
55 }
56 }
57
58 public void sortByDate(Item[] itemsQueue, int counter) {
59 int n = counter;
60 boolean sorted = false;
61 while (!sorted) {
62 n--;
63 sorted = true;
64
65 for (int i=0; i < n; i++) {
66
67 int date1 = Integer.parseInt((itemsQueue[i].getDate().substring(0,2)));
68 int month1 = Integer.parseInt((itemsQueue[i].getDate().substring(3,5)));
69 int year1 = Integer.parseInt((itemsQueue[i].getDate().substring(6,8)));
70
71 int date2 = Integer.parseInt((itemsQueue[i+1].getDate().substring(0,2)));
72 int month2 = Integer.parseInt((itemsQueue[i+1].getDate().substring(3,5)));
73 int year2 = Integer.parseInt((itemsQueue[i+1].getDate().substring(6,8)));
74
75
76 if (year1 > year2) {
77 switchElements(itemsQueue, i, (i+1));
78 sorted = false;
79
80
81 }else if(year1 == year2){
82 if(month1 > month2){
83 switchElements(itemsQueue, i, (i+1));
84 sorted = false;
85
86 }else if((month1 == month2) & (date1 > date2)){
87 switchElements(itemsQueue, i, (i+1));
88 sorted = false;
89 }
90
91 }
92 }
93 }
94 }
95
96 public void sortByStatus(Item[] itemsQueue, int counter) {
97 int n = counter;
98 boolean sorted = false;
99 while (!sorted) {
100 n--;
101 sorted = true;
102 for (int i=0; i < n; i++) {
103 boolean bool1 = itemsQueue[i].getClaimedStatus();
104 boolean bool2 = itemsQueue[i+1].getClaimedStatus();
105 int int1 = (bool1) ? 1 : 0;
106 int int2 = (bool2) ? 1 : 0;
107 if(int1 > int2){
108 switchElements(itemsQueue, i, (i+1));
109 sorted = false;
110 }
111 }
112 }
113 }
114
115
116 public int sequentialSearchName(Item[] itemsQueue, String key){
117 for(int i = 0; i < itemsQueue.length; i++){
118 if(itemsQueue[i].getName().equalsIgnoreCase(key)){
119 return i;
120 }
121 }
122 return -1;
123 }
124
125
126 public int sequentialSearchType(Item[] itemsQueue, String key){
127 for(int i = 0; i < itemsQueue.length; i++){
128 if(itemsQueue[i].getItemType().equalsIgnoreCase(key)){
129 return i;
130 }
131 }
132 return -1;
133 }
134
135
136
137 public int sequentialSearchDate(Item[] itemsQueue, String key){
138 for(int i = 0; i < itemsQueue.length; i++){
139 if(itemsQueue[i].getDate().equalsIgnoreCase(key)){
140 return i;
141 }
142 }
143 return -1;
144 }
145 }
146