
"Hi, Amigo."
"Uy, Rishi."
"Sinabi sa akin ni Ellie na gusto mo ng higit pang mga halimbawa ng mga koleksyon. Bibigyan kita ng ilan. Narito ang isang listahan ng mga koleksyon at mga interface:"
Interface | Klase/pagpapatupad | Paglalarawan |
---|---|---|
Listahan | ArrayList | Listahan |
LinkedList | Listahan | |
Vector | Vector | |
salansan | salansan | |
Itakda | HashSet | Itakda |
TreeSet | Itakda | |
SortedSet | Pinagsunod-sunod na set | |
Mapa | HashMap | Mapa/diksyonaryo |
TreeMap | Mapa/diksyonaryo | |
SortedMap | Pinagsunod-sunod na diksyunaryo | |
Hashtable | Hash-table |
"Hmm. Medyo marami iyon. Apat na listahan, tatlong set, at apat na mapa."
"Oo, lahat sila ay magkakaibang pagpapatupad ng mga interface ng Listahan, Set at Map."
"Ano ang pagkakaiba sa pagitan ng mga pagpapatupad na ito?"
"Yun naman talaga ang pag-uusapan natin ngayon. Pagpasensyahan mo na lang."
"May iba ka pa bang tanong?"
" Alam ko kung paano magpakita ng listahan sa screen. Paano ako magpapakita ng Set o Map?"
"Ang mga elemento ng isang Listahan ay may isang nakatakdang pagkakasunud-sunod, kaya maaari ka lamang gumamit ng isang index upang ipakita ang mga ito. Para sa isang Set o Mapa, walang tiyak na pagkakasunud-sunod. Sa katunayan, ang pagkakasunud-sunod ng kanilang mga elemento ay maaaring magbago habang ang mga item ay tinanggal o bago idinagdag ang mga item."
"Nakakamangha."
"Ito ang dahilan kung bakit naimbento ang mga espesyal na bagay, na tinatawag na mga iterator , upang gumana sa mga elemento ng koleksyon. Hinahayaan ka nitong suriin ang lahat ng elemento sa isang koleksyon, kahit na mayroon lamang silang mga pangalan sa halip na mga indeks (Map), o walang pangalan o indeks ( Itakda)."
"Narito ang ilang mga halimbawa:"
public static void main(String[] args)
{
Set<String> set = new HashSet<String>();
set.add("Rain");
set.add("In");
set.add("Spain");
// Get an iterator for the set
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) // Check if there is another element
{
// Get the current element and move to the next one
String text = iterator.next();
System.out.println(text);
}
}
public static void main(String[] args)
{
List<String> list = new ArrayList<String>();
list.add("Rain");
list.add("In");
list.add("Spain");
Iterator<String> iterator = list.iterator();// Get an iterator for the list
while (iterator.hasNext()) // Check if there is another element
{
// Get the current element and move to the next one
String text = iterator.next();
System.out.println(text);
}
}
public static void main(String[] args)
{
// All elements are stored in pairs
Map<String, String> map = new HashMap<String, String>();
map.put("first", "Rain");
map.put("second", "In");
map.put("third", "Spain");
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext())
{
// Get a key-value pair
Map.Entry<String, String> pair = iterator.next();
String key = pair.getKey(); // Key
String value = pair.getValue(); // Value
System.out.println(key + ":" + value);
}
}
"Wow. I wonder kung anong ibig sabihin ng lahat ng iyon."
"Ito ay talagang medyo simple. Una, nakakakuha tayo ng isang espesyal na bagay, isang iterator, mula sa koleksyon. Ang iterator ay may dalawang pamamaraan lamang.
1. Ang susunod na() na pamamaraan ay nagbabalik ng susunod na elemento sa koleksyon.
2. Sinusuri ng hasNext() method kung may mga elemento pa rin na hindi naibalik ng next()."
"OK. I think it's getting clearer now. Let me try to repeat back to you what I understand."
"Kaya... Una, kailangan nating tawagan ang iterator() method sa isang koleksyon para makuha itong magic iterator object."
"Pagkatapos ay nakakakuha tayo ng mga elemento nang paisa-isa hangga't may natitira pang makukuha. Nakukuha natin ang susunod na elemento sa koleksyon sa pamamagitan ng pagtawag sa next(), at sinusuri natin kung mayroon pa ring mga elemento sa koleksyon sa pamamagitan ng pagtawag sa hasNext() sa iterator. Tama ba iyon?"
"Oo, more or less. But wait for the good part."
"Ang Java ay may shorthand notation para sa pagtatrabaho sa mga iterator. Kasunod ng pattern ng while at for , isa pang espesyal na pahayag ang idinagdag: para sa bawat . Ito ay ipinahiwatig din gamit ang keyword para sa ."
"Ang para sa bawat pahayag ay ginagamit lamang para sa pagtatrabaho sa mga koleksyon at mga lalagyan. Gumagamit ito ng isang iterator nang tahasan, ngunit nakikita lang namin ang ibinalik na elemento."
"Hayaan akong ipakita sa iyo ang longhand at shorthand na paraan upang gumana sa isang iterator:"
public static void main(String[] args)
{
Set<String> set = new HashSet<String>();
set.add("Rain");
set.add("In");
set.add("Spain");
Iterator<String> iterator = set.iterator();
while (iterator.hasNext())
{
String text = iterator.next();
System.out.println(text);
}
}
public static void main(String[] args)
{
Set<String> set = new HashSet<String>();
set.add("Rain");
set.add("In");
set.add("Spain");
for (String text : set)
{
System.out.println(text);
}
}
"Tandaan na ang mga salitang naka-highlight sa pula o berde ay wala sa kanang bahagi. Sa katunayan, tatlong linya ay pinalitan ng isa:"
Iterator<String> iterator = set.iterator();
while (iterator.hasNext())
{
String text = iterator.next();
for (String text : set)
"This looks gorgeous. I like it much better this way."
"Tingnan natin ang shorthand na bersyon ng mga halimbawa sa itaas:"
public static void main(String[] args)
{
Set<String> set = new HashSet<String>();
set.add("Rain");
set.add("In");
set.add("Spain");
for (String text : set)
{
System.out.println(text);
}
}
public static void main(String[] args)
{
List<String> list = new ArrayList<String>();
list.add("Rain");
list.add("In");
list.add("Spain");
for (String text : list)
{
System.out.println(text);
}
}
public static void main(String[] args)
{
Map<String, String> map = new HashMap<String, String>();
map.put("first", "Rain");
map.put("second", "In");
map.put("third", "Spain");
for (Map.Entry<String, String> pair : map.entrySet())
{
String key = pair.getKey(); // Key
String value = pair.getValue(); // Value
System.out.println(key + ":" + value);
}
}
"Ngayon nagsasalita ka na!"
"Natutuwa akong nagustuhan mo ito."
GO TO FULL VERSION