Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

1)Sort an array list of strings by increasing length. 2).Sort an array list of s

ID: 3689537 • Letter: 1

Question

1)Sort an array list of strings by increasing length.

2).Sort an array list of strings by increasing length, and so that strings of the same length are sorted lexicographically.

I'm stuck on getting my code to do number 1 sort the array list of strings by increasing length

Code in java

import java.util.*;

public class Sort implements Comparator<ArrayList>

{

public int compare(ArrayList a, ArrayList b)

{

if(a.length() < b.length())

{

return -1;

}

else

if(a.length() == b.length())

{

return 0;

}

else

{

return 2;

}

}

public static void main(String [] args)

{

System.out.println("ArrayList1 before sort: ");

ArrayList<String> a = new ArrayList<>();

a.add("kind");

a.add("lift");

a.add("gym");

a.add("on");

//Print arraylist before sort

System.out.print(a);

System.out.println(" ");

//Print arraylist after sort

System.out.println("ArrayList1 after sort:");

Collections.sort(a);

System.out.println(a.toString());

System.out.println("Arraylist 2 before sort: ");

ArrayList<String> b = new ArrayList<>();

b.add("bat");

b.add("page");

b.add("car");

b.add("new");

//Print arraylist2 before sort

System.out.print(b);

System.out.print(" ");

//Print arraylist2 after sort

System.out.println(" ");

System.out.println("Arraylist2 after sort: ");

Collections.sort(b);

System.out.println(b.toString());

}

}

   

Explanation / Answer

1) import java.util.*;
public class Sort
{
  
public static void main(String [] args)
{
System.out.println("ArrayList1 before sort: ");
ArrayList<String> a = new ArrayList<>();
a.add("kind");
a.add("lift");
a.add("gym");
a.add("on");
//Print arraylist before sort
System.out.print(a);
System.out.println(" ");
//Print arraylist after sort
System.out.println("ArrayList1 after sort:");
Collections.sort(a, new Comparator<String>() {
@Override
public int compare(String a, String b)
{
if(a.length()< b.length())
{
return -1;
}
else
if(a.length() == b.length())
{
return 0;
}
else
{
return 1;
}
}
});
System.out.println(a.toString());
System.out.println("Arraylist 2 before sort: ");
ArrayList<String> b = new ArrayList<>();
b.add("bat");
b.add("page");
b.add("c");
b.add("ne");
//Print arraylist2 before sort
System.out.print(b);
System.out.print(" ");
Collections.sort(b, new Comparator<String>() {
@Override
public int compare(String a, String b)
{
if(a.length()< b.length())
{
return -1;
}
else
if(a.length() == b.length())
{
return 0;
}
else
{
return 1;
}
}
});
//Print arraylist2 after sort
System.out.println(" ");
System.out.println("Arraylist2 after sort: ");
System.out.println(b.toString());
}
}

2)

import java.util.*;
public class Sort
{
  
public static void main(String [] args)
{
System.out.println("ArrayList1 before sort: ");
ArrayList<String> a = new ArrayList<>();
a.add("kind");
a.add("aift");
a.add("rift");
a.add("gymo");
a.add("onno");
//Print arraylist before sort
System.out.print(a);
System.out.println(" ");
//Print arraylist after sort
System.out.println("ArrayList1 after sort:");
Collections.sort(a, new Comparator<String>() {
@Override
public int compare(String a, String b)
{
if(a.length()< b.length())
{
return -1;
}
else
if(a.length() == b.length())
{
return a.compareTo(b);
}
else
{
return 1;
}
}
});
System.out.println(a.toString());
System.out.println("Arraylist 2 before sort: ");
ArrayList<String> b = new ArrayList<>();
b.add("bate");
b.add("page");
b.add("corn");
b.add("next");
//Print arraylist2 before sort
System.out.print(b);
System.out.print(" ");
Collections.sort(b, new Comparator<String>() {
@Override
public int compare(String a, String b)
{
if(a.length()< b.length())
{
return -1;
}
else
if(a.length() == b.length())
{
return a.compareTo(b);
}
else
{
return 1;
}
}
});
//Print arraylist2 after sort
System.out.println(" ");
System.out.println("Arraylist2 after sort: ");
System.out.println(b.toString());
}
}