This document discusses the Comparable and Comparator interfaces in Java. Comparable allows an object to compare itself to another object, while Comparator allows two objects to be compared to each other based on arbitrary criteria. The document provides examples of implementing these interfaces to allow collections like lists to be sorted. It also discusses function objects and anonymous classes in Java.
This slide is prepared from an interview perspective, to help others answer the very famous question "Difference between Comparable and Comparator and when to use which?"
JavaFX is a set of graphics and media packages that enables developers to design, create, test, debug, and deploy rich client applications that operate consistently across diverse platforms.
This slide is prepared from an interview perspective, to help others answer the very famous question "Difference between Comparable and Comparator and when to use which?"
JavaFX is a set of graphics and media packages that enables developers to design, create, test, debug, and deploy rich client applications that operate consistently across diverse platforms.
Collections Framework is a unified architecture for managing collections, Main Parts of Collections Framework
1. Interfaces :- Core interfaces defining common functionality exhibited by collections
2. Implementations :- Concrete classes of the core interfaces providing data structures
3. Operations :- Methods that perform various operations on collections
Java Collections | Collections Framework in Java | Java Tutorial For Beginner...Edureka!
**** Java Certification Training: https://www.edureka.co/java-j2ee-soa-training ****
This Edureka tutorial on “Java Collections” will talk about the complete hierarchy of Collections Frameworks in Java. It will walk you through the various fundamentals of collections like Lists, Queue, Sets, Interfaces etc. Through this tutorial you will learn the following topics:
Java Collection Framework
Collection Framework Hierarchy
Interfaces
List
Queue
Set
Check out our Java Tutorial blog series: https://goo.gl/osrGrS
Check out our complete Youtube playlist here: https://goo.gl/gMFLx3
This keyword is a reference variable that refer the current object in java.
This keyword can be used for call current class constructor.
http://www.tutorial4us.com/java/java-this-keyword
File Handling Presentation As well as File handling code in java Update, Delete, Search, View, Insert in file code are available in this presentation in you face some issues so contact me 03244064060 , Also in my Email: azeemaj101@gmail.com and Twitter @azeemaj101
Collections Framework is a unified architecture for managing collections, Main Parts of Collections Framework
1. Interfaces :- Core interfaces defining common functionality exhibited by collections
2. Implementations :- Concrete classes of the core interfaces providing data structures
3. Operations :- Methods that perform various operations on collections
Java Collections | Collections Framework in Java | Java Tutorial For Beginner...Edureka!
**** Java Certification Training: https://www.edureka.co/java-j2ee-soa-training ****
This Edureka tutorial on “Java Collections” will talk about the complete hierarchy of Collections Frameworks in Java. It will walk you through the various fundamentals of collections like Lists, Queue, Sets, Interfaces etc. Through this tutorial you will learn the following topics:
Java Collection Framework
Collection Framework Hierarchy
Interfaces
List
Queue
Set
Check out our Java Tutorial blog series: https://goo.gl/osrGrS
Check out our complete Youtube playlist here: https://goo.gl/gMFLx3
This keyword is a reference variable that refer the current object in java.
This keyword can be used for call current class constructor.
http://www.tutorial4us.com/java/java-this-keyword
File Handling Presentation As well as File handling code in java Update, Delete, Search, View, Insert in file code are available in this presentation in you face some issues so contact me 03244064060 , Also in my Email: azeemaj101@gmail.com and Twitter @azeemaj101
Java 8 is one of the largest upgrades to the popular language and framework in over a decade. This talk will detail several new key features of Java 8 that can help make programs easier to read, write, and maintain. Java 8 comes with many features, especially related to collection libraries. We will cover such new features as Lambda Expressions, the Stream API, enhanced interfaces, and more.
Operation “Blue Star” is the only event in the history of Independent India where the state went into war with its own people. Even after about 40 years it is not clear if it was culmination of states anger over people of the region, a political game of power or start of dictatorial chapter in the democratic setup.
The people of Punjab felt alienated from main stream due to denial of their just demands during a long democratic struggle since independence. As it happen all over the word, it led to militant struggle with great loss of lives of military, police and civilian personnel. Killing of Indira Gandhi and massacre of innocent Sikhs in Delhi and other India cities was also associated with this movement.
Model Attribute Check Company Auto PropertyCeline George
In Odoo, the multi-company feature allows you to manage multiple companies within a single Odoo database instance. Each company can have its own configurations while still sharing common resources such as products, customers, and suppliers.
2024.06.01 Introducing a competency framework for languag learning materials ...Sandy Millin
http://sandymillin.wordpress.com/iateflwebinar2024
Published classroom materials form the basis of syllabuses, drive teacher professional development, and have a potentially huge influence on learners, teachers and education systems. All teachers also create their own materials, whether a few sentences on a blackboard, a highly-structured fully-realised online course, or anything in between. Despite this, the knowledge and skills needed to create effective language learning materials are rarely part of teacher training, and are mostly learnt by trial and error.
Knowledge and skills frameworks, generally called competency frameworks, for ELT teachers, trainers and managers have existed for a few years now. However, until I created one for my MA dissertation, there wasn’t one drawing together what we need to know and do to be able to effectively produce language learning materials.
This webinar will introduce you to my framework, highlighting the key competencies I identified from my research. It will also show how anybody involved in language teaching (any language, not just English!), teacher training, managing schools or developing language learning materials can benefit from using the framework.
How to Make a Field invisible in Odoo 17Celine George
It is possible to hide or invisible some fields in odoo. Commonly using “invisible” attribute in the field definition to invisible the fields. This slide will show how to make a field invisible in odoo 17.
Biological screening of herbal drugs: Introduction and Need for
Phyto-Pharmacological Screening, New Strategies for evaluating
Natural Products, In vitro evaluation techniques for Antioxidants, Antimicrobial and Anticancer drugs. In vivo evaluation techniques
for Anti-inflammatory, Antiulcer, Anticancer, Wound healing, Antidiabetic, Hepatoprotective, Cardio protective, Diuretics and
Antifertility, Toxicity studies as per OECD guidelines
A Strategic Approach: GenAI in EducationPeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
Instructions for Submissions thorugh G- Classroom.pptxJheel Barad
This presentation provides a briefing on how to upload submissions and documents in Google Classroom. It was prepared as part of an orientation for new Sainik School in-service teacher trainees. As a training officer, my goal is to ensure that you are comfortable and proficient with this essential tool for managing assignments and fostering student engagement.
1. Comparable/Comparator Interfaces
Topics:
Comparable and Comparator interfaces in JCF
“Java Collections Framework”
Function objects
1
2. Back to Java: Comparable / Comparator
In computing, we often want to order a set of items
Find the max/best or min/worst
Sort them in order
Note how this is different than what is needed for search
(where we just need equals)
Need a way to compare two items
Want a flexible way to “compare” using different criteria
In Java, let’s us use Collection(s) methods to meet our
own special needs. (Powerful!)
2
3. Check out the Collections class
Class Collections
utility methods for doing operations on Collections, Lists (that
almost always contain homogenous elements)
Note very similar Arrays class
See MSD textbook, Section 9.5, pp. 666f
Methods (static, mostly for Lists)
search a list for an item: binarySearch()
sort(), max(), min() -- uses compareTo() or Comparator object
reverse(), fill(), shuffle(), copy(), replaceAll()
List list2 = Collections.unmodifiableList(list1); // p. 668
3
4. Comparable Interface
First solution: Can we ask an object how it compares
to a second object?
Sure: string1.compareTo(string2)
Programming convention: Return value as follows:
zero if the same
negative value if first item strictly less than second
positive value if first item strictly greater than second
Java provides a Comparable interface
int compareTo(YourClass o)
Note the parameter is an object of the same type as the
class in which you’re defining compareTo()
4
5. Hang on: What’s an Interface?
When defining a class, state that it “implements” an
interface. E.g.
public class Watch implements TimeKeeper {
What else is the meaning of the interface TimeKeeper?
A set of methods that any implementing class must
include
TimeKeeper interface doesn’t define how these methods
are coded
Watch (the implementing class) is promising to include
those in its definition
5
6. Example
A TimeKeeper Interface defined with its 2 methods:
getTime() and set Time()
Now a Watch class is declared to implement
TimeKeeper
Watch is promising to have these 2 methods as part
of its definition (getTime() and setTime())
Watch can implement those how ever it wants
It means Watch, by implementing TimeKeeper, can
handle the TimeKeeper role
6
7. Interface gives an Object another Type
With this definition:
public class Watch implements TimeKeeper {
You can think of Watch in these ways:
You can treat a Watch object as a TimeKeeper
A Watch object can do “TimeKeeper things”
A Watch object can be used anywhere a TimeKeeper is legal
to use
A Watch object has more than one type
It’s a Watch (defined by the class Watch)
It’s a TimeKeeper (defined by the interface)
7
8. Interface gives an Object another Type
Interfaces are legal Java types. Therefore can be
used
To declare variables
As a parameter type (passing a variable to a
method)
As a return type
8
9. Example
If you have a method that took a TimeKeeper as a
parameter
A Watch could be used as a parameter to that method,
because a Watch plays the role of a TimeKeeper
If that method takes a TimeKeeper as a parameter, then
we can pass it a Watch
You can think of the Watch object as having more than
one type. (Every Watch also fills the role as Time Keeper)
9
10. What are we getting at?
The method sort can take an ArrayList as an argument (an
ArrayList of something) Of what? It can take an ArrayList of
anything that meets this interface called Comparable
The parameter has to be an ArrayList of any class that
implements the comparable interface – that means it has
the compareTo() method – which means inside of sort, it
knows it can call get() to get 2 items from the ArrayList and
use the compareTo() method – its guaranteed to have it
because that class implements the Comparable interface
10
11. Writing compareTo for Your Classes
If you ever want to put your own objects in
Collections, and use sort(), max(), min(),…
1. Make your class implement Comparable
2. Implement the compareTo() method in your class
How to write compareTo()?
Think about state-variables that determine natural order
Compare them and return proper-value
Note: For number values, you can subtract.
For object values, call compareTo() on them.
11
12. Let’s Get Practical
You can sort an ArrayList… BUT the ArrayList has
to have things inside it that implement the
Comparable Interface
Can we sort an ArrayList of Strings?
Go to API for class String (Google: “java api string”)
On “All Implemented Interfaces” – one of them is
comparable!
Scroll to “Method Summary” – has compareTo()
method!
So you can definitely sort an ArrayList of Strings
12
13. Example: Writing compareTo()
Imagine something like an entry in a phonebook
Order by last name, first name, then number
int compareTo(PhoneBookEntry item2 ) {
int retVal= last.compareTo(item2.last);
if ( retVal != 0 ) return retVal;
retVal = first.compareTo(item2.first);
if ( retVal != 0 ) return retVal;
retVal = phNum - item2.phNum;
return retVal;
}
13
15. Under the Hood for Sorting
How might a sort() or any other method use this? Imagine:
Its parameter is of the type List<Comparable>
ArrayList is a type-of List in Java (more on this later)
Inside a loop, code might look like this:
Comparable item1 = theList.get(i);
Comparable item2 = theList.get(j);
int cmpResult = item1.compareTo(item2);
Such code will work when the list stores any class that
implements Comparable!
But, what happens if list-elements are of different classes (still
Comparable, but different)?
compareTo() fails!
15
16. Flexible Design using Comparators
Solution #1: Make classes Comparable
Disadvantage: just one way to compare is possible,
because there’s just one compareTo method per class
Possible solutions:
Separate functions: sortByName(), sortByNum(),…
We can’t predict in advance how you’ll want to sort!
Pass a parameter to indicate control:
sort(theList, “byName”) or sort(theList, “byNum”);
Ugh. Same problem as before
And the internals of sort() will grow to become very ugly
16
17. Function Objects
We need to somehow pass “how to execute”
information as a parameter to sort()
We pass objects as parameters
Can we pass a method/operation as an object?
Many languages support this, but in different ways:
C and C++ – pointers to functions
C# – delegates
Java – “function objects” that
implement a specified interface, and
the one method in that interface does the needed work
17
18. Function Objects in Java
Idea: encapsulate a
function inside a class
Note: not our usual idea of
a class
State? (None.)
Identity? (Just need one
instance.)
Represents an entity?
(Nope! Just a place to
stash a function so it can
be passed as a
parameter.)
Warning / caveat!
This idea is contrary to
many OO principles, but…
Useful if done in limited
circumstances
Use it when the libraries
make it available
Not often part of your own
class-design
But use it in libraries when
it’s part of the framework
18
19. Example: Comparator objects
We want to pass a function-object to a method:
Collections.sort(someList, function-object-goes-here);
But what type should this object be?
Use an Interface:
Interface name can be used as a type in the parameter list
Interface defines the method name itself!
19
20. Example: Comparator objects
Java’s Comparator interface:
int compare( Object o1, Object o2);
Notes: not compareTo()! Takes two parameters!
Define a class for each kind of comparison you want.
E.g.
Classes: CmpStudentByGpa, CmpStudentByGpaDesc
Classes: CmpDogByName, CmpDogByBreed
20
21. Writing a Comparator Class
Example like one from MSD text, p. 647
We have a Dog class with name, breed and gender
Compare two doggies by breed and then name
public class CmpDogByBreedAndName implements Comparator<Dog> {
public int compare(Dog d1, Dog d2) {
int retVal = d1.getBreed().compareTo(d2.getBreed());
if ( retVal != 0 ) return retVal;
return d1.getName().compareTo( d2.getName() );
}
}
21
22. Use of Comparator methods
How to use with Collections.sort()
ArrayList dogList = …;
Collections.sort( dogList, new CmpDogByName() );
Collections.sort( dogList, new CmpDogByBreed() );
(Do you understand what new does here?)
Inside sort(), code looks something like this:
sort ( List theList, Comparator cmpObj ) {
// in some loop
Object item1 = list.get(i);
Object item2 = list.get(j);
cmpResult = cmpObj.compare(item1,item2);
22
24. Java Aside: Anonymous Classes
There’s a Java technique called anonymous classes
One of several types of nested class definition
You’ll very often see it in GUI programming (Swing) and
with threads
Situation:
Sometimes Java’s design encourages us to create some
thing that might be used just once
That thing needs to be wrapped up in a class, say
because we need a function object
24
25. Creating and Using an Anonymous Class
Example: sort a list of Strings by their length
Collections.sort ( stringList, new Comparator() {
public int compare( Object o1, Object o2 ) {
return ((String) o1).length() –
((String) o2).length();
}
} ) ;
We’ve created a new Comparator “on the fly”
new creates a new instance, but what kind?
Some object that implements Comparator
Object not named, and its “true” class not named!
What must a Comparator have? compare()
We defined it right here, where it’s used! 25
26. Anonymous Classes: Comments
Anonymous classes are
unlike other classes
They have no name
Typically only implement
methods in their interface or
superclass. No new
methods!
Since they have no name,
can only define and use
them at one point in your
code!
Hard to understand at first?
Sure!
Naming an abstraction is
important for human
understanding!
Sorting, a Collection,
Comparing
Advice
Keep them very short (and
simple)!
Be ready to understand
them when you see them in
Swing and with threads
26