Migrated from old fork (#15626)
This commit is contained in:
		
							parent
							
								
									85c4162119
								
							
						
					
					
						commit
						a662e499b9
					
				| @ -0,0 +1,36 @@ | ||||
| package com.baeldung.priorityqueueiterator; | ||||
| 
 | ||||
| import java.util.Comparator; | ||||
| 
 | ||||
| public class Person { | ||||
|     String name; | ||||
|     int age; | ||||
| 
 | ||||
|     public Person(String name, int age) { | ||||
|         this.name = name; | ||||
|         this.age = age; | ||||
|     } | ||||
| 
 | ||||
|     public String getName() { | ||||
|         return name; | ||||
|     } | ||||
| 
 | ||||
|     public void setName(String name) { | ||||
|         this.name = name; | ||||
|     } | ||||
| 
 | ||||
|     public int getAge() { | ||||
|         return age; | ||||
|     } | ||||
| 
 | ||||
|     public void setAge(int age) { | ||||
|         this.age = age; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| class PersonAgeComparator implements Comparator<Person> { | ||||
|     @Override | ||||
|     public int compare(Person p1, Person p2) { | ||||
|         return p1.age - p2.age; // Ascending order | ||||
|     } | ||||
| } | ||||
| @ -0,0 +1,97 @@ | ||||
| package com.baeldung.priorityqueueiterator; | ||||
| 
 | ||||
| import java.util.Iterator; | ||||
| import java.util.PriorityQueue; | ||||
| 
 | ||||
| public class PriorityQueueMain { | ||||
| 
 | ||||
|     public static void main(String[] args) { | ||||
|         showPriorityQueueWithIterator(); | ||||
|         showCustomOrderingWithIterator(); | ||||
|         showCustomOrderingWithPoll(); | ||||
|         useIteratorToCapitalizeNames(); | ||||
|         showFailFastIteratorBehavior(); | ||||
|     } | ||||
| 
 | ||||
|     public static void showPriorityQueueWithIterator() { | ||||
|         PriorityQueue<Integer> queue = new PriorityQueue<>(); | ||||
|         queue.add(3); | ||||
|         queue.add(1); | ||||
|         queue.add(2); | ||||
| 
 | ||||
|         Iterator<Integer> iterator = queue.iterator(); | ||||
| 
 | ||||
|         while (iterator.hasNext()) { | ||||
|             Integer element = iterator.next(); | ||||
|             System.out.println(element); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public static void showFailFastIteratorBehavior() { | ||||
|         PriorityQueue<Integer> numbers = new PriorityQueue<>(); | ||||
|         numbers.add(3); | ||||
|         numbers.add(1); | ||||
|         numbers.add(2); | ||||
| 
 | ||||
|         Iterator<Integer> iterator = numbers.iterator(); | ||||
|         numbers.add(4); | ||||
| 
 | ||||
|         try { | ||||
|             while (iterator.hasNext()) { | ||||
|                 System.out.println(iterator.next()); | ||||
|             } | ||||
|         } catch (java.util.ConcurrentModificationException e) { | ||||
|             System.out.println("ConcurrentModificationException occurred during iteration."); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public static void showCustomOrderingWithIterator() { | ||||
|         // Creating a PriorityQueue with a custom comparator | ||||
|         PriorityQueue<Person> priorityQueue = new PriorityQueue<>(new PersonAgeComparator()); | ||||
| 
 | ||||
|         // Adding persons to the PriorityQueue | ||||
|         priorityQueue.add(new Person("Alice", 25)); | ||||
|         priorityQueue.add(new Person("Bob", 30)); | ||||
|         priorityQueue.add(new Person("Charlie", 22)); | ||||
| 
 | ||||
|         Iterator<Person> iterator = priorityQueue.iterator(); | ||||
| 
 | ||||
|         while (iterator.hasNext()) { | ||||
|             Person person = iterator.next(); | ||||
|             System.out.println("Name: " + person.name + ", Age: " + person.age); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public static void showCustomOrderingWithPoll() { | ||||
|         PriorityQueue<Person> priorityQueue = new PriorityQueue<>(new PersonAgeComparator()); | ||||
| 
 | ||||
|         priorityQueue.add(new Person("Alice", 25)); | ||||
|         priorityQueue.add(new Person("Bob", 30)); | ||||
|         priorityQueue.add(new Person("Charlie", 22)); | ||||
| 
 | ||||
|         Iterator<Person> iterator = priorityQueue.iterator(); | ||||
| 
 | ||||
|         while (!priorityQueue.isEmpty()) { | ||||
|             Person person = priorityQueue.poll(); | ||||
|             System.out.println("Name: " + person.name + ", Age: " + person.age); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public static void useIteratorToCapitalizeNames() { | ||||
|         PriorityQueue<Person> priorityQueue = new PriorityQueue<>(new PersonAgeComparator()); | ||||
| 
 | ||||
|         priorityQueue.add(new Person("Alice", 25)); | ||||
|         priorityQueue.add(new Person("Bob", 30)); | ||||
|         priorityQueue.add(new Person("Charlie", 22)); | ||||
| 
 | ||||
|         Iterator<Person> iterator = priorityQueue.iterator(); | ||||
| 
 | ||||
|         while (iterator.hasNext()) { | ||||
|             Person person = iterator.next(); | ||||
|             person.setName(person.getName() | ||||
|                 .toUpperCase()); | ||||
|             System.out.println("Name: " + person.name + ", Age: " + person.age); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user