new java assignment

Java6/Assign6-S2013 x
CS204

Save Time On Research and Writing
Hire a Pro to Write You a 100% Plagiarism-Free Paper.
Get My Paper

Myers

Assignment 6

Spring 2013

The US Census has the primary job of providing population information used to determine how many seats each state is given in the House of Representatives. Beyond this, the Census provides data for researchers to study trends in the lives and lifestyles of Americans.

Save Time On Research and Writing
Hire a Pro to Write You a 100% Plagiarism-Free Paper.
Get My Paper

We will be using data that comes from the 2000 US Census. The file

NE_counties.csv
contains population data for counties in the New England states. Write an application that implements the bubble sort, merge sort, quick sort and heap sort algorithms, and allows sorting in three ways, using different Comparator objects:

· Alphabetical by County name.

· Reverse order by population.

· Alphabetical by state name then reverse order by population

Your application will display the time for each sort and a listing of the results.

Data Element – County

You will be creating a class
County which will hold all the information for a county: name, state and population. Include getters and setters. Override the equals method for the JUnit test. Implement Serialization so it can be written to a binary file with an ObjectOutputStream. Provide the constructor County(String name, String state, int population) for the JUnit test.

Data Structure – County[]

Data Manager – CountyList

Create a class
CountyList. Implement the CountyListInterface. There will be methods for reading from a text file, reading from a binary , writing to a binary file and to add a county. There is also a method called
randomOrder to randomize the order of the County objects for testing the sort routines.

Utility – SortUtility

Create a class SortUtility that follows the javadoc I have given you. It is a generic class of static methods. You will have methods for bubbleSort, heapSort, mergeSort, quicksort and a method compareSorts which returns an Map>, which is a map of Strings (The names of the sorts “Merge”, “Bubble”, etc.) and Pair objects which contains a long with the nanoSeconds required to execute the sort and an array of County which is the results of the sort. Make sure each sort is using the same initial unsorted array of County objects. System.nanoTime() returns nanoseconds.

Utility – Pair

I have given you the code for this class. The SortUtility compareSorts method uses it .

Comparators – CountyNameComparator, PopulationComparator, StatePopComparator

The classes implement the Comparator interface and give a definition for the compare and equals methods. CountyNameComparator will compare the County objects by County names in alpha order. PopulationComparator will compare the County objects by population in reverse order (largest first). StatePopComparator will compare the County objects by State in alpha order and then population in reverse order (largest first).

GUI Driver

Use an object of your CountyList. Use the FileChooser to ask the user for the location of the file to read the county information. The results of each sort is displayed . Provide a way for the user to select between the way the county information is sorted (by county name, by reverse population, by state and then reverse population.

Input File

The county information is stored in a .csv (comma separated values) file in the following format (fields separated by a ,):

,,

Here is a portion of the file:

Exception Handling

Display appropriate messages to user when an exception is raised while attempting to read a file.

Read from the text file

Sort by population (reverse order)

Program Grade Sheet

Assignment #6

CS204

Name _________________________________ Date/Time _________________

DOCUMENTATION

Javadoc for user created classes: 4 pt _____

Test Cases 4 pt _____

JUnit Test Class

Implement the student tests in CountyListTest and

SortUtilityTest

UML Diagram 2 pt _____

PROGRAMMING

Programming Style

Internal class documentation (within source code) 3 pt _____

Class description using Javadoc

Author’s Name, Class, Class Time

Methods commented using Javadoc

Program user interface

Clear to user how data is to be entered 1 pt _____

Output is easy to understand 1 pt _____

Accuracy

Public Tests – provided for you and the ones you wrote 5 pt _____

Private Tests 5 pt _____

Program Details

1. Data Element – County class 4 pt _____

a. Implements Serializable

b. toString, getters & setters methods

2. Data Manager – CountyList 7 pts _____

a. Implements the CountyListInterface

b. Uses data structure of County[]

c. Methods that read from text and binary files

d. Method write to binary file

3. Comparators – CountyNameComparator, PopulationComparator, 5 pts _____

StatePopComparator

a. Definitions for compare and equals methods

b. Compare() works correctly for type of comparator it is

4. Utility – SortUtility class 5 pts _____

a. Correctly implements methods for mergeSort, bubbleSort

quickSort and heapSort

b. Generic class

c. Follow javadoc provided

d. Uses comparators

5. GUI 4 pts _____

a. Uses fileChooser to get file names

b. Displays results of all sorts

c. Uses methods of SortUtility

d. Display appropriate error messages

Total 50 pt _____

image2

image3

image4

image1

Java6/Java6/.classpath

Java6/Java6/.project

Java6

org.eclipse.jdt.core.javabuilder

org.eclipse.jdt.core.javanature

Java6/Java6/.settings/org.eclipse.jdt.core.prefs
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.6

Java6/Java6/bin/Assignment6/CountyListInterface.class
package Assignment6;
abstract
interface CountyListInterface {

static void
();

public
abstract void
add(County);

public
abstract String
readBinaryFile(java.io.File);

public
abstract String
readTextFile(java.io.File);

public
abstract String
writeBinaryFile(java.io.File);

public
abstract County[]
getList();
}

Java6/Java6/bin/Assignment6/CountyListTest.class
package Assignment6;
public
synchronized
class CountyListTest {
CountyList
countyListGroup1;
CountyList
countyListGroup2;
County[]
countiesGroup1;
County[]
countiesGroup2;
County
county1;
County
county2;
County
county3;
County
county4;
County
county5;
County
county6;
County
county7;
County
county8;
County
county9;
County
county10;

static java.io.File
selectedTextFile;

public void CountyListTest();

public
static void
setUpBeforeClass()
throws Exception;

public void
setUp()
throws Exception;

public void
tearDown()
throws Exception;

public void
testReadTextFile();

public void
testReadandWriteBinaryFile();

public void
testAdd();
}

Java6/Java6/bin/Assignment6/Pair.class
package Assignment6;
public
synchronized
class Pair {

private Object
first;

private Object
second;

public void Pair(Object, Object);

public Object
getFirst();

public Object
getSecond();
}

Java6/Java6/bin/Assignment6/SortUtilityTest$TestComparatorA.class
package Assignment6;
synchronized
class SortUtilityTest$TestComparatorA
implements java.util.Comparator {

private void SortUtilityTest$TestComparatorA(SortUtilityTest);

public int
compare(SortUtilityTest$TestObject, SortUtilityTest$TestObject);
}

Java6/Java6/bin/Assignment6/SortUtilityTest$TestObject.class
package Assignment6;
synchronized
class SortUtilityTest$TestObject {

private String
stringField;

private int
intField;

private double
doubleField;

public void SortUtilityTest$TestObject(SortUtilityTest, String, int, double);

public int
getInt();

public String
getString();
}

Java6/Java6/bin/Assignment6/SortUtilityTest.class
package Assignment6;
public
synchronized
class SortUtilityTest {

private SortUtilityTest$TestObject[]
objects;

private SortUtilityTest$TestComparatorA
comparator;

public void SortUtilityTest();

public void
setUp()
throws Exception;

public void
tearDown()
throws Exception;

public void
testHeapSort();

public void
testHeapSortSTUDENT();

public void
testMergeSort();

public void
testQuickSort();

public void
testQuickSortSTUDENT();

public void
testBubbleSort();

public void
testCompareSorts();
}

Java6/Java6/src/Assignment6/CountyListInterface.java

Java6/Java6/src/Assignment6/CountyListInterface.java

package
 
Assignment6
;

import
 java
.
util
.
*
;

import
 java
.
io
.
*
;

import
 javax
.
swing
.
JFileChooser
;

/**

 * Creates and maintains an array of County objects

 * by reading from a text file.  

 * Writes the array of County objects to a file using’

 * the ObjectOutputStream.  After writing a binary file,

 * it is allowable to read from a binary file using

 * a ObjectInputStream.

 * 
@author
 Professor Myers

 * 
@version
 1.0

 */

interface
 
CountyListInterface
 
{

  

    
/**

     * Adds a county object to the array of County objects.

     * Assume that the array of County objects is always full

     * You must increase the size of the array of County objects by 1

     * and place this new county in at the end;

     * 
@param
 county the county object to be added to the array of County objects

     */

    
public
 
void
 add
(
County
 county
);

    

    
/**

     * Read from a binary file with ObjectInputStream and creates

     * an array of County.  Must have called the method writeBinaryFile 

     * on the File before this method is called

     * 
@param
 selectedFile the binary file to read from

     * 
@return
 null if the read was successful and no exceptions were raised, 

     * or a string with the type of exception raised, i.e. “ClassNotFoundException”

     * 
@exception
 catches all exceptions

     */

  
public
 
String
 readBinaryFile
(
File
 selectedFile
);
 

 

  
/**

   * Reads from a .csv text file and creates an array of County.

   * 
@param
 selectedFile a .csv file

   * 
@return
 null if the read was successful and no exceptions were raised, 

     * or a string with the type of exception raised, i.e. “IOException”

   * 
@exception
 catches all exceptions

   */

  
public
 
String
 readTextFile
(
File
 selectedFile
);

  

  
/**

   * Writes to a binary file with ObjectOutputStream

   * 
@param
 selectedFile the binary file to write to

   * 
@return
 null if the read was successful and no exceptions were raised, 

     * or a string with the type of exception raised, i.e. “IOException”

   * 
@exception
 catches all exceptions

   */

  
public
 
String
 writeBinaryFile
(
File
 selectedFile
);

  

  
/**

   * Returns an array of county objects in random order.

   * 
@return
 An array of county objects in random order.

   */

  
public
 
County
[]
 getList
();

}

Java6/Java6/src/Assignment6/CountyListTest.java

Java6/Java6/src/Assignment6/CountyListTest.java

package
 
Assignment6
;

import
 
static
 org
.
junit
.
Assert
.
*
;

import
 java
.
io
.
File
;

import
 java
.
io
.
IOException
;

import
 javax
.
swing
.
JFileChooser
;

import
 org
.
junit
.
After
;

import
 org
.
junit
.
Before
;

import
 org
.
junit
.
BeforeClass
;

import
 org
.
junit
.
Test
;

/**

 * JUnit test for CountyList

 * 
@author
 Professor Myers

 *

 */

public
 
class
 
CountyListTest
 
{

    
CountyList
 countyListGroup1
,
 countyListGroup2
;

    
County
[]
 countiesGroup1
,
 countiesGroup2
;

    
County
 county1
,
county2
,
county3
,
county4
,
county5
,
 county6
,
 county7
,
 county8
,
 county9
,
 county10
;

    
static
 
File
 selectedTextFile 
=
 
null
;

    @
BeforeClass

    
public
 
static
 
void
 setUpBeforeClass
()
 
throws
 
Exception

    
{

        
JFileChooser
 chooser 
=
 
new
 
JFileChooser
();

        chooser
.
setDialogTitle
(
“Select text file”
);

        
if
(
chooser
.
showOpenDialog
(
null
)
 
==
 
JFileChooser
.
APPROVE_OPTION
)

        
{

            selectedTextFile 
=
 chooser
.
getSelectedFile
();

        
}

    
}

    @
Before

    
public
 
void
 setUp
()
 
throws
 
Exception
 
{

        county1 
=
 
new
 
County
(
“Essex County”
,
“Vermont”
,
6459
);

        county2 
=
 
new
 
County
(
“Orleans County”
,
“Vermont”
,
26277
);
     

        county3 
=
 
new
 
County
(
“Providence County”
,
“Rhode Island”
,
621602
);

        county4 
=
 
new
 
County
(
“Grand Isle County”
,
“Vermont”
,
6901
);

        county5 
=
 
new
 
County
(
“Hampden County”
,
“Massachusetts”
,
456228
);

        county6 
=
 
new
 
County
(
“Hillsborough County”
,
“New Hampshire”
,
380841
);

        county7 
=
 
new
 
County
(
“Barnstable County”
,
“Massachusetts”
,
222230
);

        county8 
=
 
new
 
County
(
“Norfolk County”
,
“Massachusetts”
,
650308
);

        county9 
=
 
new
 
County
(
“Middlesex County”
,
“Massachusetts”
,
1465396
);

        county10 
=
 
new
 
County
(
“Bennington County”
,
“Vermont”
,
36994
);

        countyListGroup1 
=
 
new
 
CountyList
();

        countyListGroup2 
=
 
new
 
CountyList
();

        countyListGroup2
.
add
(
county1
);

        countyListGroup2
.
add
(
county2
);

        countyListGroup2
.
add
(
county3
);

        countyListGroup2
.
add
(
county4
);

        countyListGroup2
.
add
(
county5
);

        countyListGroup2
.
add
(
county6
);

        countyListGroup2
.
add
(
county7
);

        countyListGroup2
.
add
(
county8
);

        countyListGroup2
.
add
(
county9
);

        countyListGroup2
.
add
(
county10
);

    
}

    @
After

    
public
 
void
 tearDown
()
 
throws
 
Exception
 
{

        countiesGroup1 
=
 
null
;

        countyListGroup1 
=
 
null
;

    
}

    @
Test

    
/**

     * make sure all the counties in countiesGroup2 are in countiesGroup1

     */

    
public
 
void
 testReadTextFile
()

    
{

        
int
 count 
=
 
0
;

        countiesGroup2 
=
 countyListGroup2
.
getList
();

        
//this array will hold booleans to see if each county in countiesGroup2 was in countiesGroup1

        
boolean
[]
 found 
=
 
{
false
,
 
false
,
 
false
,
 
false
,
 
false
,
 
false
,
 
false
,
 
false
,
 
false
,
 
false
};

        countyListGroup1
.
readTextFile
(
selectedTextFile
);

        countiesGroup1 
=
 countyListGroup1
.
getList
();

        
for
(
County
 b 
:
 countiesGroup2
)

        
{

            
for
(
County
 a 
:
 countiesGroup1
)

            
{

                
if
 
(
a
.
equals
(
b
))

                    found
[
count
++
]
=
true
;

            
}

        
}

        
//check if any entries are still false

        
for
(
int
 i
=
0
;
i
< countiesGroup2 . length ; i ++ )              if ( found [ i ]   ==   false )                 fail ( "The following county was not found in the array read from the file " + countiesGroup2 [ i ]);      }     @ Test      public   void  testReadandWriteBinaryFile ()   {          String  result =   null ;         countiesGroup1  =  countyListGroup2 . getList ();          int  arrayLength  =  countiesGroup1 . length ;          JFileChooser  chooser  =   new   JFileChooser ();         chooser . setDialogTitle ( "Select binary file to save to" );          if ( chooser . showSaveDialog ( null )   ==   JFileChooser . APPROVE_OPTION )          {              File  selectedBinaryFile  =  chooser . getSelectedFile ();              try {                 result  =  countyListGroup2 . writeBinaryFile ( selectedBinaryFile );                  if ( result  ==   null )                  {                     result  =  countyListGroup2 . readBinaryFile ( selectedBinaryFile );                      if ( result  ==   null )                      {                          int  count = 0 ;                         countiesGroup2  =  countyListGroup2 . getList ();                          int  newArrayLength  =  countiesGroup2 . length ;                         assertEquals ( arrayLength ,  newArrayLength );                          //this array will hold booleans to see if each county in counties B was in countiesA                          boolean []  found  =   new   boolean [ countiesGroup2 . length ];                          //set all elements in found to false                          for ( boolean  element  :  found )                             element  =   false ;                          for ( County  b  :  countiesGroup2 )                          {                              for ( County  a  :  countiesGroup1 )                              {                                  if   ( a . equals ( b ))                                     found [ count ++ ] = true ;                              }                          }                          //check if any entries are still false                          for ( int  i = 0 ; i < countiesGroup2 . length ; i ++ )                              if ( found [ i ]   ==   false )                                 fail ( "The following county was not found in the array read from the file " + countiesGroup2 [ i ]);                      }                      else                         fail ( result );                    }                  else                     fail ( result );              }              catch   ( Exception  e )              {                 fail ( "An exception was raised" );              }          }      }     @ Test      public   void  testAdd ()      {         countiesGroup2  =  countyListGroup2 . getList ();          int  length  =  countiesGroup2 . length ;         countyListGroup2 . add ( new   County ( "Androscoggin County" , "Maine" , 103793 ));         countiesGroup1  =  countyListGroup2 . getList ();          int  newLength  =  countiesGroup1 . length ;         assertEquals ( length + 1 , newLength );      } } Java6/Java6/src/Assignment6/Pair.java Java6/Java6/src/Assignment6/Pair.java package   Assignment6 ; /**   * Generic class that contains a pair of two objects  *  @author  Professor Myers  *  *  @param   The data type of the first object

 * 
@param
  The data type of the second object

 */

public
 
class
 
Pair
< T ,  S >
 
{

    
private
 T first
;

    
private
 S second
;

    
/**

     * Constructor

     * 
@param
 firstElement the first object in the Pair

     * 
@param
 secondElement the second object in the Pair

     */

    
public
 
Pair
(
T firstElement
,
 S secondElement
)
 
{
 

        first 
=
 firstElement
;

        second 
=
 secondElement
;

    
}

    

    
/**

     * Returns the first object in the Pair

     * 
@return
 the first object in the Pair

     */

    
public
 T getFirst
()
 
{
 
return
 first
;
 
}
 

    

    
/**

     * Returns the second object in the Pair

     * 
@return
 the second object in the Pair

     */

    
public
 S getSecond
()
 
{
 
return
 second
;
 
}

}

Java6/Java6/src/Assignment6/SortUtilityTest.java

Java6/Java6/src/Assignment6/SortUtilityTest.java

package
 
Assignment6
;

import
 
static
 org
.
junit
.
Assert
.
*
;

import
 java
.
util
.
Collection
;

import
 java
.
util
.
Comparator
;

import
 java
.
util
.
Map
;

import
 org
.
junit
.
After
;

import
 org
.
junit
.
Before
;

import
 org
.
junit
.
Test
;

/**

 * JUnit test class for SortUtility class

 * STUDENT: 1.  Create another private comparator class for the TestObject class

 *          2.  Use this comparator for the testHeapSortSTUDENT and

 *              testQuickSortSTUDENT methods

 * 
@author
 Professor Myers

 *

 */

public
 
class
 
SortUtilityTest
 
{

    
private
 
TestObject
[]
 objects
;

    
private
 
TestComparatorA
 comparator
;

    @
Before

    
public
 
void
 setUp
()
 
throws
 
Exception
 
{

        objects 
=
 
new
 
TestObject
[
10
];

        objects
[
0
]
 
=
 
new
 
TestObject
(
“J”
,
 
1
,
 
1.5
);

        objects
[
1
]
 
=
 
new
 
TestObject
(
“A”
,
 
2
,
 
1.5
);

        objects
[
2
]
 
=
 
new
 
TestObject
(
“Q”
,
 
1
,
 
1.5
);

        objects
[
3
]
 
=
 
new
 
TestObject
(
“F”
,
 
5
,
 
1.5
);

        objects
[
4
]
 
=
 
new
 
TestObject
(
“B”
,
 
1
,
 
1.5
);

        objects
[
5
]
 
=
 
new
 
TestObject
(
“K”
,
 
9
,
 
1.5
);

        objects
[
6
]
 
=
 
new
 
TestObject
(
“S”
,
 
1
,
 
1.5
);

        objects
[
7
]
 
=
 
new
 
TestObject
(
“M”
,
 
9
,
 
1.5
);

        objects
[
8
]
 
=
 
new
 
TestObject
(
“Z”
,
 
1
,
 
1.5
);

        objects
[
9
]
 
=
 
new
 
TestObject
(
“T”
,
 
7
,
 
1.5
);

        comparator 
=
 
new
 
TestComparatorA
();

    
}

    @
After

    
public
 
void
 tearDown
()
 
throws
 
Exception
 
{

        objects 
=
 
null
;

        comparator 
=
 
null
;

    
}

    @
Test

    
public
 
void
 testHeapSort
()
 
{

        
SortUtility
.
heapSort
(
objects
,
 comparator
);

        assertEquals
(
“B”
,
 objects
[
0
].
getString
());

        assertEquals
(
“J”
,
 objects
[
1
].
getString
());

        assertEquals
(
“Q”
,
 objects
[
2
].
getString
());

        assertEquals
(
“S”
,
 objects
[
3
].
getString
());

        assertEquals
(
“Z”
,
 objects
[
4
].
getString
());

        assertEquals
(
“A”
,
 objects
[
5
].
getString
());

        assertEquals
(
“F”
,
 objects
[
6
].
getString
());

        assertEquals
(
“T”
,
 objects
[
7
].
getString
());

        assertEquals
(
“K”
,
 objects
[
8
].
getString
());

        assertEquals
(
“M”
,
 objects
[
9
].
getString
());

    
}

    

    @
Test

    
public
 
void
 testHeapSortSTUDENT
()

    
{

        fail
(
“Not implemented yet”
);

    
}

    @
Test

    
public
 
void
 testMergeSort
()
 
{

        
SortUtility
.
mergeSort
(
objects
,
 comparator
);

        assertEquals
(
“B”
,
 objects
[
0
].
getString
());

        assertEquals
(
“J”
,
 objects
[
1
].
getString
());

        assertEquals
(
“Q”
,
 objects
[
2
].
getString
());

        assertEquals
(
“S”
,
 objects
[
3
].
getString
());

        assertEquals
(
“Z”
,
 objects
[
4
].
getString
());

        assertEquals
(
“A”
,
 objects
[
5
].
getString
());

        assertEquals
(
“F”
,
 objects
[
6
].
getString
());

        assertEquals
(
“T”
,
 objects
[
7
].
getString
());

        assertEquals
(
“K”
,
 objects
[
8
].
getString
());

        assertEquals
(
“M”
,
 objects
[
9
].
getString
());

    
}

    @
Test

    
public
 
void
 testQuickSort
()
 
{

        
SortUtility
.
quickSort
(
objects
,
 comparator
);

        assertEquals
(
“B”
,
 objects
[
0
].
getString
());

        assertEquals
(
“J”
,
 objects
[
1
].
getString
());

        assertEquals
(
“Q”
,
 objects
[
2
].
getString
());

        assertEquals
(
“S”
,
 objects
[
3
].
getString
());

        assertEquals
(
“Z”
,
 objects
[
4
].
getString
());

        assertEquals
(
“A”
,
 objects
[
5
].
getString
());

        assertEquals
(
“F”
,
 objects
[
6
].
getString
());

        assertEquals
(
“T”
,
 objects
[
7
].
getString
());

        assertEquals
(
“K”
,
 objects
[
8
].
getString
());

        assertEquals
(
“M”
,
 objects
[
9
].
getString
());

    
}

    @
Test

    
public
 
void
 testQuickSortSTUDENT
()

    
{

        fail
(
“Not implemented yet”
);

    
}

    

    @
Test

    
public
 
void
 testBubbleSort
()
 
{

        
SortUtility
.
bubbleSort
(
objects
,
 comparator
);

        assertEquals
(
“B”
,
 objects
[
0
].
getString
());

        assertEquals
(
“J”
,
 objects
[
1
].
getString
());

        assertEquals
(
“Q”
,
 objects
[
2
].
getString
());

        assertEquals
(
“S”
,
 objects
[
3
].
getString
());

        assertEquals
(
“Z”
,
 objects
[
4
].
getString
());

        assertEquals
(
“A”
,
 objects
[
5
].
getString
());

        assertEquals
(
“F”
,
 objects
[
6
].
getString
());

        assertEquals
(
“T”
,
 objects
[
7
].
getString
());

        assertEquals
(
“K”
,
 objects
[
8
].
getString
());

        assertEquals
(
“M”
,
 objects
[
9
].
getString
());

    
}

    @
Test

    
public
 
void
 testCompareSorts
()
 
{

        
Map
< String ,   Pair < Long ,   TestObject [] >>
 results
;

        results 
=
 
SortUtility
.
compareSorts
(
objects
,
 comparator
);

        
Collection
< Pair < Long ,   TestObject [] >>
 values 
=
 results
.
values
();

        
TestObject
[]
 objs
;

        
//test each of the sorts results

        
for
(
Pair
< Long ,   TestObject [] >
 element 
:
 values
)

        
{

            objs 
=
 element
.
getSecond
();

            assertEquals
(
“B”
,
 objs
[
0
].
getString
());

            assertEquals
(
“J”
,
 objs
[
1
].
getString
());

            assertEquals
(
“Q”
,
 objs
[
2
].
getString
());

            assertEquals
(
“S”
,
 objs
[
3
].
getString
());

            assertEquals
(
“Z”
,
 objs
[
4
].
getString
());

            assertEquals
(
“A”
,
 objs
[
5
].
getString
());

            assertEquals
(
“F”
,
 objs
[
6
].
getString
());

            assertEquals
(
“T”
,
 objs
[
7
].
getString
());

            assertEquals
(
“K”
,
 objs
[
8
].
getString
());

            assertEquals
(
“M”
,
 objs
[
9
].
getString
());

        
}

    
}

    
private
 
class
 
TestComparatorA
 
implements
 
Comparator
< TestObject >

    
{

        @
Override

        
public
 
int
 compare
(
TestObject
 o1
,
 
TestObject
 o2
)
 
{

            
//order by int and then by string

            
if
(
o1
.
getInt
()
 
==
 o2
.
getInt
())

                
return
 o1
.
getString
().
compareTo
(
o2
.
getString
());

            
else
 
if
(
o1
.
getInt
()
 
>
 o2
.
getInt
())

                
return
 
1
;

            
else

                
return
 

1
;

        
}

        

    
}

    

    
private
 
class
 
TestObject

    
{

        
private
 
String
 stringField
;

        
private
 
int
 intField
;

        
private
 
double
 doubleField
;

        

        
public
 
TestObject
(
String
 s
,
 
int
 i
,
 
double
 d
)

        
{

            stringField 
=
 s
;

            intField 
=
 i
;

            doubleField 
=
 d
;

        
}

        

        
public
 
int
 getInt
()
 
{
 
return
 intField
;}

        

        
public
 
String
 getString
()
 
{
return
 stringField
;}

        

    
}

}

Java6/NE_counties.csv

Essex County
Vermont
6459

Orleans County
Vermont
26277

Providence County
Rhode Island
621602

Grand Isle County
Vermont
6901

Hampden County
Massachusetts
456228

Hillsborough County
New Hampshire
380841

Barnstable County
Massachusetts
222230

Norfolk County
Massachusetts
650308

Middlesex County
Massachusetts
1465396

Bennington County
Vermont
36994

Androscoggin County
Maine
103793

Cheshire County
New Hampshire
73825

New Haven County
Connecticut
824008

Windsor County
Vermont
57418

Bristol County
Rhode Island
50648

Essex County
Massachusetts
723419

Worcester County
Massachusetts
750963

Lincoln County
Maine
33616

Piscataquis County
Maine
17235

Kent County
Rhode Island
167090

Fairfield County
Connecticut
882567

Hartford County
Connecticut
857183

Kennebec County
Maine
117114

Orange County
Vermont
28226

Suffolk County
Massachusetts
689807

Lamoille County
Vermont
23233

Caledonia County
Vermont
29702

Rutland County
Vermont
63400

Hancock County
Maine
51791

Waldo County
Maine
36280

Belknap County
New Hampshire
56325

Nantucket County
Massachusetts
9520

Chittenden County
Vermont
146571

Newport County
Rhode Island
85433

Sullivan County
New Hampshire
40458

Merrimack County
New Hampshire
136225

Bristol County
Massachusetts
534678

Franklin County
Vermont
45417

Grafton County
New Hampshire
81743

Penobscot County
Maine
144919

Windham County
Vermont
44216

Middlesex County
Connecticut
155071

Rockingham County
New Hampshire
277359

Washington County
Maine
33941

York County
Maine
186742

Hampshire County
Massachusetts
152251

Franklin County
Maine
29467

Oxford County
Maine
54755

Berkshire County
Massachusetts
134953

Franklin County
Massachusetts
71535

Strafford County
New Hampshire
112233

Addison County
Vermont
35974

Sagadahoc County
Maine
35214

Windham County
Connecticut
109091

Coos County
New Hampshire
33111

Litchfield County
Connecticut
182193

Cumberland County
Maine
265612

Washington County
Vermont
58039

Carroll County
New Hampshire
43666

Tolland County
Connecticut
136364

Knox County
Maine
39618

Dukes County
Massachusetts
14987

Aroostook County
Maine
73938

New London County
Connecticut
259088

Washington County
Rhode Island
123546

Somerset County
Maine
50888

Plymouth County
Massachusetts
472822

Order a unique copy of this paper

600 words
We'll send you the first draft for approval by September 11, 2018 at 10:52 AM
Total price:
$26
Top Academic Writers Ready to Help
with Your Research Proposal

Order your essay today and save 25% with the discount code GREEN