File tree Expand file tree Collapse file tree 1 file changed +37
-1
lines changed
Expand file tree Collapse file tree 1 file changed +37
-1
lines changed Original file line number Diff line number Diff line change 22
33import java .util .ArrayList ;
44import java .util .Comparator ;
5+ import java .util .Iterator ;
6+ import java .util .function .Consumer ;
57
6- public class Heap <T extends Comparable <T >> {
8+ public class Heap <T extends Comparable <T >> implements Iterable < T > {
79
810 private ArrayList <T > list = new ArrayList <>();
911 private int index ;
@@ -97,6 +99,14 @@ public boolean isEmpty() {
9799 return index == 0 ;
98100 }
99101
102+ public Object [] toArray () {
103+ Object [] arr = new Object [size ()];
104+ for (int i = 1 ; i < size (); i ++) {
105+ arr [i - 1 ] = list .get (i );
106+ }
107+ return arr ;
108+ }
109+
100110 @ Override
101111 public String toString () {
102112 StringBuilder ans = new StringBuilder ("[" );
@@ -108,4 +118,30 @@ public String toString() {
108118 ans .append (list .get (i ));
109119 return ans .append ("]" ).toString ();
110120 }
121+
122+ @ Override
123+ public void forEach (Consumer <? super T > c ) {
124+ for (int i = 1 ; i < size (); i ++) {
125+ c .accept (list .get (i ));
126+ }
127+ }
128+
129+ @ Override
130+ public Iterator <T > iterator () {
131+ return new HeapItr ();
132+ }
133+
134+ private class HeapItr implements Iterator <T > {
135+ int cursor = 1 ;
136+
137+ @ Override
138+ public boolean hasNext () {
139+ return cursor < Heap .this .size ();
140+ }
141+
142+ @ Override
143+ public T next () {
144+ return Heap .this .list .get (cursor ++);
145+ }
146+ }
111147}
You can’t perform that action at this time.
0 commit comments