CORE JAVA PART 5

26.EXCEPTION HANDLING
27.MULTI THREADING 
28.STREAMS
29.packages
30.AWT
31.APPLET
32.COLLECTIONS

EXCEPTION HANDLING:
******************

  Exception is nothing but a an error.In the programming side we can 
 say Exceptionhandling is eradication that a problem occured during the program
 Execution.
  Exception handling is used to handle that exception.The recovery procedure 
 called an exception handling.java Exception handling prepares a program to know 
 all types of exceptions that are prefined.this makes programs more robust and performance.

  java exception is an object that describes an error.when java system encounters an error
 an error in a method while executing or compiling of its statements,an object is 
 prepared by java system and thrown.The thrown object can select its corresponding 
 handler whether it is system defined or user defined.if it selects system defined 
 cause's abnormal termination so that's why java provides a mechanism to define 
 handler for finding and handling such errors.
  if avoid using exception handling,it reduces program clarity and performance
 it helps to improve a program's fault tolerance
  The style and details of exception handling mechanism similar to c++ but 
 predefined classes are not avilable in c++ where as avaliable in java.

  
 Exception types:
 ****************
    throwable
       |
         ------------
         |    |
       Error  Exception
       |
         -------------
         |    |
    checked  unchecked

  All Exception types are subclasses of the built-in class Throwable.Thus,
 throwable is super class of all classes.it has two branches 'error' and 'exception'
  but it is enough to know the developer about 'Exception' branch.'Error' branch is
 for system designer. Exception are classified into two types that are checked and unchecked
 exceptions.
  keywords: try 
     catch
     throw
     throws
     finally




     try
     {
  
    statements;
  
  
     }
     catch(Exception e )
     {
    statements;
     }
     throw Exc....
     throws Ex....
     finally
     {
    statements;
     }

 multiple catch blocks: // care about exception types.

 points:
 1.ther is no try block without catch or finally blocks
 2.the catch or finally blocks must be follwed by try blocks
 3.do not apply any  statements between try and catch blocks or finally blocks
 4.more than one catch blocks can be defined with a single try block but only one
  try block must be there.
 5.finally blocks also not more can be defined.Only one is valid.
 6.The statements that are defined after error caused statements are not executed
  because the control cannot come back to try block.
 7.nested try block are possible but try after try means multiple try blocks are 
  not possible.
 8.catch block can be defined with only one exception class.

 
 checked Exceptions:
   ClassNotFoundException
   CloneNotSupportedException
   IllegalAccessException
   InstantiationException
   NoSuchMethodException 



  handling:
   1.try catch
   2.throws 

 unchecked Exceptions:

   try catch

 


  
MULTITHREADING:
***************
  what is multi threading?
   Thread is nothing but a small program that can control another program.
 Genarally a program has some stages that are start,process(going on) and stop.These
 stages can be controlled by Thread.
   An application can perform two are more tasks simultaniously.for example
 a text editor can allow formating the text at the same time that it is printing.
 Each of these independent subtask is called a thread and these two actions are being
 performed by two separate threads is called multithreading.

 multitasking: It is two types.It is supported all modern operating systems.These are 
 two distinct types of multitasking.process based(heavy weight) and thread based(light weight)
  Two or more programs allows to run concurrentlyis called processbased.Multi
 threading is also same but here program size is small.
  java mt programing style allows you to write very efficient programs that 
 make maximum use of the cpu,because we can reduce idle time of the cpu.
  c,c++ are single thread based.

 Applications:
  when a program downloads large audio video clips from internet,we need not
 wait until the entire clip is downloaded.we can start the playback.for this two 
 threads are prepared,one for downloading the clips and another one is to play that.



 Thread has some states:
    start 
    Running
    Suspended
    Resume
    Blocked
    Terminated(stop)

 how to create a thread:
  thread can be prepared in two ways.

  the most general form is to create thread is to get instatance for "Thread"
 class that is available in "java.lang package"  and with inteface 'Runnable' it is
 also available in same package.
  with class  Thread
  with interface Runnable

 Thread class:
  properties:
   static final int MIN_PRIORITY(1)
   static final int Max_PRIORITY(10)
   static final int NORM_PRIORITY(5)
  constructors:
   Thread()
   Thread(String name)
   Thread(Runnable runnable_obj)
   Thread(Runnable runnable_obj,String name)
  methods:
   Thread currentThread()// to get current thread
   void start() //to start the thread
   void run() // that is executed by thread
   void stop() //to stop the thread
   boolean isAlive()
   void suspend()// to suspend the thread
   void resume() // to resume the thread
   void setPriority(int priority)// to set the priority
   int getPriority() // to know the priority of the thread
   void setName(String name)// to set name to thread
   String getName() // to get the name of the thread
   void sleep(milliseconds) throws InterruptedException
    // to suspend thread execution some time that is mentiod

 Runnable Interface:

   It has only one method
   
   public void run();

 main Thread:
  when a java starts up,one thread begins running immediatly.This is  usually
 called of main Thread.

 1.the main method is the main thread that is main of other child threads means it is
 not completed,the childs are completed.
 2.It is the last thread to finish execution.when the main thread stops,your program
 terminates.
 3.The main thread is created automatically when your program is started.It can be
 controlled through a Thread Object.
 4.we can control main thread as like any other thread.

 how to get the main thread:
  currentThread() is method it returns the Thread object.

 how to prepare thread  with Thread class:

  The first way,to create a thread is by extending "Thread" class and create 
 an instance of this class.The extending class must override the run() method,that
 is entry point of new thread and it is activated by 'start()' method. the Thread
 class has several methods to control the process.

 run():  run()  is a special method of Thread,actually it is method of Runnable
  implemented in Thread class. it is activated by start() method.It is 
  overiden with the program that is controlled by the thread.So we can fill 
  this method with new programs.

 Runnable Interface:

   It is an interface provided by java to prepare a thread in another way 
 Sometimes class cannot be extended wIth "Thread" class(mostly in windows applicaion)
 It has only one method run() must be implemented by subclass.But controlling of the
 process is not availabe with this interface so,it must be linked with Thread class 
 to get actual thread strength.For this Thread has constructors.
  Thread(Runnable obj);
  Thread(Runnable obj,String name);



 synchroniziation:
 -----------------
  when two or more threads need access to a shared resoure,they need some way
 to ensure that it will be used one thread at a time.
  
  class class-name
  {
   synchronized void methodname()
   {
    //statements;
   }
  }

 once a thread enters into monitor,the object is blocked,no other thread can access
 So after completion of one thread execution,another thread enters into monitor.
 
 

   
    
 
 
STREAMS:
*******
  Flow of data is Stream

 FILE:
 1. All streams are defined in java.io takes  operations on streams but the
 class 'File' is gives information about files and file system.It has not capable 
 to get or set information in files,it describes about disk files.It gives such 
 as information of time,date,directory,path,size etc........

 File class:

  Constructors:
   File(String filename)
   File(String path,String filename)
   File(File pathobj,String filename)
  methods:
   String getName()// to get the file name
   boolean canRead()
   boolean canWrite()
   boolean exists()
   boolean isDirectory()
   boolean isFile()
   boolean isHidden()
   boolean delete()
   long length()
   int compareTo(File)
   boolean setReadOnly()

  so many methods are availabel in File...........

 
 java defines two types of streams byte and character streams.

 character Streams:
 -----------------

  it is used to handle the character based means text based input and outputs.
 'Reader' and 'Writer' are the abstract super classes for all character streams.

 Readers:
   FileReader
   BufferedReader
   CharArrayReader
   LineNumberReader
   InputStreamReader
   FilterReader
   PushBackReader
   PipedReader
   StringReader

 common methods for all above classes:
  void close()
  int read()
  int read(char buffer[])
  long skip(long num_char)

 writers:
  writer is an abstract class that helps to write character format into a file
 
 writer classes:

   BufferdWriter
   CharArrayWriter
   FilterWriter
   OUtputStreamWriter
   PipedWriter
   StringWriter
   PrintWriter

 comman methods available in writer classes:

  void write(char)
  void write(char[])
  void write(char[],int ,int)
  void write(String)
  void write(String, int, int)
  void close()


 FileReader:
  java.io
  FileReader is used to read data from textfiles
  constructors:
   FileReader(String filename)
   FileReader(File fileobj)
  methods:
   common methods in Reader class

  Constructors throws FileNotFoundException.

 FileWriter:
  java.io
  to handle text files
  constructors:
   FileWriter(String filename)
   FileWriter(File obj)
   
    constructors throws IOException
  methods:
   common methods available in Writer class

 

 

 ByteStream:
 =========
  This streams are used to read and write binary data such as images and sounds ,here also two
 abstract classes are available that are Inputstream and OutputStream

 InputStream(abstract)

  FileInputStream
  ByteArrayInputStream
  SequenceInputStream
  ObjectInputStream
  LineNumberInputStream
  DataInputStream
  

 etc..

 OutputStreams:
  FileOutputStream
  ByteArrayOutputStream
  ObjectOutputStream

 etc...

  

 FileInputStream:
  
  this class creates InputStream that can be accessed to read bytes from a file
 constructors:
  FileNotFoundException
  FileInputStream(String str)
  FileInputStream(File obj)
 methods:
  IOException
  int read()
  int read(byte[])
  int read(byte[],int, int)
  void close()
  
 FileOutputStream:
  it prepares a OutputStream that is used to write bytes into a file.
 constructors:
  filenotfoundException
  FileOutputStream(String)
  FileOutputStream(File)
 methods:
  
  void write(byte)
  void write(byte[])
  void write(byte[], int, int)
  void close()



RandomAccessFiles:
  
  with streams,either character based or byte based, user needs two streams for reading and
 writing process.And also input stream can be read forward only .but RamdomAccessFiles
  helps to perform read and write process in a single file and pointer can be moved to any where.
 
 The RandomAccessFile class implements both the DataInput and DataOutput interface

 constructors:
  RandomAccessFile(String file,String mode)
  RandomAccessFile(File obj,String mode)

  first arguement is the file you want to access.
  second arguements is the mode of access.

  the mode should be either the String literal 'r' for readonly or 'rw' for
  read/write operations.
  
  java does not support writeonly access.

  all throws IllegalException 

 methods:

  long getFilePointer()
  long length()
  int read()
  int read(byte[] data)
  void write(int)
  void write(byte[])

 //to read and write primary types

  boolean readBoolean()
  byte readByte()
  int readInt()
  long readLong()
  double readDouble()
  String readLine()


  void writeBoolean(boolean b)
  void writeInt(int a)
  void writeDouble(double value)

  void close()

  IOException

  
  


   


packages:
*********


 java main feature is reusing the code if once created.if we need to use classes
 from other programs without physically copying them into our program to development
 this can be acomplishing using with packages in java.a concept as 'class libraries'
 in other languages.

 packages are java's way of grouping a variety of classes and interfaces together
 The grouping is done according to functionality.package is nothing but container
 for classes.

 uses:


 packages are two types:
   java API packages(System)
   user defined packages

 

 java API:
  lang
  io
  util
  awt
  net
  applet


 import packagename.[<sub-package>.]classname;// for single class importing 
 import packagename.[<sub-package>.]*;// for all classes importing in that package.
 
 import java.lang.System

 creating package:
 -----------------------

  package packagename;
  public class classname
  {
   //body of the class
  }

 accessing the above class in our program:
  import packagename.classname;
  class ourclass
  {
   //body of this class
   //statements using with the imported class
  }

 adding a class to package:

 example:
 adding one class :

 package com.raju;
  public class PackageP
  {
   public int sum(int a, int b){
    return (a+b);
   }
  }

 adding another class to that package:

 package com.raju;
  public class PackageP1 
  {
   public int sub(int a, int b){
    return (a-b);
   }
  }

Testing :
-----------
 import com.raju.*;
 public class TestP 
{
 public static void main(String[] args) 
 {
  PackageP1 p=new PackageP1();
  System.out.println(p.sub(19,34));
 }
}


 



AWT PACKAGE:
************
  Genarally applications are two types from the view of end user that are 
 CUI(console User Interface) generally used for console applications,and GUI
 (Graphical User Interface) called windows applications.java provides these two types
 of application interfaces.java provides awt to generate windows applications.
  
  AWT stands for Abstract Windows Toolkit,provides windows components are 
 nothing but a reusable predifined classes that are generally visible in windows
 environment are Frames,Labels,Buttons...................

 AWT controls:
  Lable 
  Button
  TextField
  CheckBox
  RadioButton
  List
  Choicebox

  so many components are available in awt.The all classes extends an abstract
 class "Component".so they have some properties and behaviors that are 
        ----------

  String getName()// to get object name
  void setName(String)// to set object name
  boolean isVisible()//to know the component is visible or not
  void setVisible(boolean)// to set visibility
  Color getForegroung()// fo get foreground color of object
  void setForeground(Color)// to  set the foreground color
  COlor getBackground()// to the background
  void setBackground(Color)// to set the background color

  Font getFont()// to get the font of the 
  void setFont(Font)//to set  the font

  void setLocation(int ,int)// for location setting
  void setBounds(int, int, int, int)// to set the location and size of the compnents
  void setSize(int, int)// for setting size of the components
  void setResizable(boolean)// to handle resizable status of components
 
  int getX()
  int getY()
  int getWidth()
  int getHeight()
  
  void setRequestFocus()

 Frame:
 ------
  Frame is predifined class that is available in java.awt package.It is a 
 top level window.It is a main Container that can contain other components like
 buttons,labels and all components that are available in awt.
 
  constructors:
   Frame()
   Frame(String) //with title
  methods:
   String getTitle()
   void setTitle(string str)
   boolean isResizable()
   void setResizable(boolean)

 Label:
 ------
  Labels are passive controls they do not support user interaction.Labels are 
 used to display a static text.generally they are used to display the messages.

  constructors:
   Label()
   Label(String caption)
   Label(String caption,int alignment)
  properties:
   static final int LEFT
   static final int RIGHT
   static final int CENTER
  methods:
   int getAlignment()
   void setAlignment()
   String getText()
   void setText(String)

 Button:
 -------
  The button is most frequently used component in graphical applications.
 When the user selects the button it signals the program that something needs to
 be done.It has caption text and can generate an event.

  constructors:
   Button()
   Button(String)
  methods:
   String getLabel()
   void setLabel(String)
   void setActionCommand(String)// to set the internal label of button obj
   String getActionCommand()// to get internal label
   void addActionListener(ActionListener)//method for event registration

 TextField:
 ----------
  Textfield is the text component for user input.This component is commonly
 used for taking user input in windows application.

  constructors:
   TextField()
   TextField(String)
   TextField(int)
   TextField(String, int)
  methods:
   void setText(String)
   String getText()
   int getColomns()
   void setColumns(int)
   char getEchoChar()
   void setEchoChar(char)

 Checkbox & RadioButton(Option button):
 --------------------------------------
  checkbox class is used to prepare checkboxes that helps to select more than
 one selectio from a group.It appears as square textbox with tick property.User can
 select by tick at the checkbox area.
  RadioButton are also generally used as group but user can get only one 
 selection.java provides only one class to prepare both that is Checkbox.
` 
 Checkbox:
 
  constructors:
  
  for checkbox:
   checkbox()
   checkbox(String)
   Checkbox(String, boolean)
  for RadioButtoon:
   checkbox(String, boolean, checkboxGroup)
   checkbox(String, CheckboxGroup, boolean)

  methods:
   String getLabel()// to get label of checkbox/radiobutton
   void setLabel(string) //to set caption to checkbox/radiobutton
   boolean getStatus()// to get the status of checkbox/radiobutton
   void setState(boolean)// to set the status of checkbox/radiobutton
   Object[] getSelectedObjects()// to get selected objects from a group

 List:
 ------
  The List class provides compact multiple scrolling selection list.It supports
 single selection and multiple selection.if user wants to visible more items from a 
 collection he can apply this control.
  constructors:
   List()
   List(int)
   List(int, boolean)
  methods:
   void add(String)// to add an item
   void add(String, int)//to add an item at given position
   void select(int)// to select particular item by index
   int getItemCount()// to get howmany items the list object has.
   int getSelectedIndex()//to get selected item index
   int[] getSelectedIndexes()//to get selected items index(multi selection)
   String getItem(int)//to get an item of given index
   String getSelectedItem// get selected item
   String[] getSelectedItems()//to get selected items inmultiple selection
   void removeAll()// toremove all items
   void removeString(String)// to remove given string
   void remove(int)//to remove given index item 
 Choice:
 -------

  Choice class is used to prepare pop-up list(drop down list box).This is 
 combination of List and textfield.it is used for single selection but looks like
 listbox when drop the list and once select the item it is going to looks like text
 field.

  constructor:
   Choice()
  method:
   same as 'List' control....

    
   
 LAYOUT MANAGERS:
 ----------------


  A container or subcontainer should have a layout manager to place controls
 in windows applications,Layout managers help to select controls proper place according
 to its container.Layout manager are predefined classes and every container or
 subcontainer has a method setLayout() to get Layout manager object.
   FlowLayout
   GridLayout
   BorderLayout
 FlowLayout:
  properties:
   
   FlowLayout.LEFT
   FlowLayout.RIGHT
   FlowLayout.CENTER
  Constructors:
   FlowLayout()
   FlowLayout(int)
   FlowLayout(int, int, int)//alignment, hori-gap,ver-gap
  components adding method:
   add(compnent)

 GridLayout:
  this layout place the components in two dimentional grid.

  constructors:
   GridLayout()
   GridLayout(int, int)// rows,columns
   GridLayout(int, int, int, int) // rows,columns,hori-gap,ver-gap
  components adding method:
   add(component)

 BorderLayout:

  This is common layout of top level window.It has five places.four narrow 
 edges and one larger center area.

  properties:
   BorderLayout.WEST
   BorderLayout.EAST
   BorderLayout.NORTH
   BorderLayout.SOUTH
   BorderLayout.CENTER
  constructors:
   BorderLayout()
   BorderLayout(int, int)// hor-gap.ver-gap
  components adding method:
   add(component,int)


 EVENT SOURCES:
  Buttons,Checkbox,................
 
 Listeners:

  1.ActionListener:
   It has one method and is received action events.
   
   method:
   public void actionPerformed(ActionEvent ae)

  2.ItemListener:
   It has one method and recognized the state of item.
   method:
   public void itemStateChanged(ItemEvent ie)

  3.FocusListener:
   it has two methods and recognize when components getfocus and loose focus
   
   methods:
   void focusGained(FocusEvent fe)
   void focusLost(FocusEvent fe)
  4.KeyListener:
   It has three methods.
   
   void keyPressed(KeyEvent ke)
   void keyTyped(KeyEvent ke)
   void keyRealesed(KeyEvent ke)
  5.MouseListener:
   It has five methods can recognized five mouse actions.
   
   methods:
   void mouseClicked(MouseEvent me)
   void mouseEntered(MouseEvent me)
   void mouseExited(MouseEvent me)
   void mousePressed(MouseEvent me)
   void mouseReleased(MouseEvent me)

  6.MouseMotionListener:
   It has two methods and recognized dragged and moved.
   
   method:
   void mouseDragged(MouseEvent me)
   void mouseMoved(MouseEvent me)
  7.WindowListener:
   It has seven methods
   methods:
   void WindowActivated(WindowEvent we)
   void WindowDeactivated(WindowEvent we)
   void WindowClosed(WindowEvent we)
   void WindowClosing(WindowEvent we)
   void WindowIconified(WindowEvent we)
   void WindowDeIconified(WindowEvent we)
   void WindowOpened(WindowEvent we)

  so many listeners are there...................
  
  Adapter classes:
  =============
  public WindowAdapter implements WindowListener
  {
   
   void WindowActivated(WindowEvent we){}
   void WindowDeactivated(WindowEvent we){}
   void WindowClosed(WindowEvent we){}
   void WindowClosing(WindowEvent we){}
   void WindowIconified(WindowEvent we){}
   void WindowDeIconified(WindowEvent we){}
   void WindowOpened(WindowEvent we){}
  }

  ananimous:
  ========
  a class is class is c

  
APPLET:
*******  
  Applet is window based program.So they are automatically becomes event driven.
 java has two lives one is stand alone applications and second one is web applications.
 The writen for general purpose is called application.Second is applet programing
 that is executed in java compatable web browser.
 
  Applets are small java programs.they are dynamic and interactive programs.
 They can be transported over the internet from one computer to another computer
 and run using the appletviewer or any browser that support java.

  the difference of applications and applets is Application can be executed 
 with out GUI,where as applets can be excuted only in GUI.applications starts from 
 main() method.and applets cannot have the main method.

 Applet life cycle:

  Every java applet inherits  a set of default behaviors from java.applet class
 When applet is loaded,it undergoes a series of changes in it states.The life cycle
 of applet depends on five methods that are
 
 initilization state:init() :=

  Applet enters the initilization state when it is first loaded.This is 
 achieved by calling init() method of applet.it is like constructor.

   public void init(){}

 running state:start():=
 
  Applet enters the running state by calling start() method by applet.
   
   public void start(){}

 Idle or stopped state:stop():=

  An applet becomes idle state when it is stopped from running.Stopping occurs
 automatically when we leave the web containing currently running applet.

   public void stop(){}

 dead state:destroy():

  An applet is said to be dead when it is removed from memory.This occurs 
 by invoking destroy() method.

   public void destroy(){}

 display state:paint(Graphics g):=

  Applet moves to the display whenever it has to perform some output operations
 on the screen.This is happen immediatly after the applet enters into the running state
 

   public void paint(Graphics g){}// graphics is coming from awt to
       // draw any diagram and text also
  
 Simple Applet tag that can be placed in java program or HTMl page.

  <applet code=javafile.class width=500 height=344> </applet>

 Applet class:
  constructor:Applet()
  
  methods: 
   boolean isActive()
   void reSize(int, int)
   void showStatus(String)
   void init()
   void start()
   void stop()
   void destroy()

COLLECTIONS:
---------------------
 
  we can handle a group of elements with arrys,. and but not different type of Objects.

  so the main requirement is to store the different objects.to do this we have Collection framework.

  A collection framework is a class library to handle groups of objects.Collection framework is 
  implemented in java.util package.

  Collection object does not store the physical copies of other objects, since the other objects
  are already in memory only jvm stores the references of other objects into a collection object.

  Collection

  Set
   HashSet
   LinkedHashSet
  List
   Stack
   LinkedList
   ArrayList
   Vector
  Queue
   LinkedList
  
  Map
   HashMap<k,v>
   Hashtable<k,v>

Set:
-----
 A set represents a group of elements arranged just like an array, The set will grow dynamically
 when the elements stored into it.

 A set will not allow duplicate elements..if we tried to pass same element that is alread avaliable 
 in the set , then it is not stored into the set.

List:
-----
 Lists are like Sets.They store a group of elements. But lists allow duplicate values to be stored.

Queue:
---------
 A Queue represents arangments of elements in FIFO order.

Maps:
-------
 Maps store elements in the form of key and value pairs.If the key is provided then its
 corresponding value can be obtained, the keys should have unique values.

*****
*****
 In all the cases the 'elements' refer to 'objects' only. This means we cannot store primitive
 data types in the collection objects. We can store only objects since the main aim of collections
 is to handle objects only. not the primitive data types.

Retriveing elements from Collections:
--------------------------------------------------
 4 ways to retrieve any element from a collection object:

 using for-each loop:
 -------------------------
  for(var: collection-object)
  {
   //statement
  }

 using Iterator Interface:
 -------------------------------
  Iterator is an interfac that contains methods to retrieve the elements one by one from
  a collection object.It has 3 methods 
  
  -boolean hasNext()
  -element next()
  -void remove()

 using ListIterator interface:
 -----------------------------------
  ListIterator is an interfce that contains methods to retrieve the elements from a collection
  object, both in forward and reverse directions.
  
  boolean hasNext()
  element hasPrevious()
  element next()
  element previous()
  void remove()
 
 using Enumeration interface:
 --------------------------------------
 This interface is useful to retrieve one by one , the elements like the iterator. It has 2 methods.

 boolean hasMoreElements()
 element nextElement()


 no remove method.

 HashSet Class:
 ---------------------
  boolean add(obj)
  boolean remove(obj)
  void clear()
  boolean contains(obj)
  boolean isEmpty()
  int size()
 LinkedHashSet class:
 -----------------------------
  sub class of HashSet class and its internally uses linked lists.
 
 Stack class:
 ----------------
  A Stack represents a group of elements stored in LIFO.

  boolean empty()
  element peek()
  element push(element obj)
  int search(Object o)
 

 LinkedList class:
 ----------------------
  A LinkedList contains a group of elements in the form of nodes. Each node will have 
  three fields. (same as double linked list)

  Stack is generally used for the purpose of evaluation of expressions.
  A LinkedList is used to store and retrieve data.

  Insertion and deletion of elements only from the top of the Stack is possible.
  Insertion and deletion of elements from any where is possible in case of LinkedList.
  
  boolean add(element obj)
  void add(int position, element obj)
  void addFirst(element obj)
  void addLast(element obj)
  element removeFirst()
  element removeLast()
  element remove(element obj)
  void clear()

  element get(int pos)
  element getFirst()
  element getLast()

  int size()


No comments:

Post a Comment