Java.util.Arrays; (method sort( ) )

1) How to change a direction of sorting (on increase / on decrease)?
2) Whether exists in java 2 something similar for sorting Strings ?

1) How to change a direction of sorting (on increase
/ on decrease)?[url http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collections.html#reverseOrder()]http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collections.html#reverseOrder()
2) Whether exists in java 2 something similar for
sorting Strings ?Arrays.sort and Collections.sort will both sort the array or list as long as the type implements Comparable (or you supply a separate Comparator). Since String implements Comparable, those sort methods will sort the array or list of strings.
Making Java Objects Comparable
http://java.sun.com/docs/books/tutorial/collections/interfaces/order.html
http://www.javaworld.com/javaworld/jw-12-2002/jw-1227-sort.html

Similar Messages

  • Java.util.Arrays.sort for Vector

    I used the java.util.Arrays.sort to sort an array based on the method below.
                  java.util.Arrays.sort(array, 0, total, new ComparatorX());
               repaint();
                class ComparatorX implements java.util.Comparator
              public int compare( Object p1, Object p2){
                   int x1=((Point)p1).x;
                   int x2=((Point)p2).x;
                   if(x1>x2)
                                return 1;
                   if(x1>x2)
                                return -1;
                   return 0;
         }I've since changed the array to a vector. Is there anyway I can keep the comparator. Or how can I sort the vector based on the above method.

    BTW: Don't know if it's just a typing mistake, but your code contains an error:
    class ComparatorX implements java.util.Comparator     {
       public int compare( Object p1, Object p2) {
          int x1=((Point)p1).x;
          int x2=((Point)p2).x;
          if (x1>x2) {
             return 1;
          if (x1>x2) {  // Should be: if (x2 > x1) ...
             return -1;
          return 0;

  • How to set property "java.util.Arrays.useLegacyMergeSort" in jnlp-file?

    Hi,
    I have a problem in a web start application with java 7 and the new sort behavior (exception: comparison method violates its general contract).
    So I like to go back to previous behavior and tried to put the new java 7 system property "java.util.Arrays.useLegacyMergeSort" in the generated jnlp-File:
    <property name="java.util.Arrays.useLegacyMergeSort" value="true"/>.
    Now I can read the property value in java code with System.getProperty("java.util.Arrays.useLegacyMergeSort"), and guess the property was successful set, but the exception still appears?!
    The system property works with command line "javaws -J-Djava.util.Arrays.useLegacyMergeSort=true file.jnlp", but not via doubleclick on the jnlp-file or url and browser.
    Any ideas?
    Cheers,
    Dan

    Only "trusted" set of properties can be set in the JNLP file by unsigned applications.
    List of properties is revised from time to time but it usually takes time for new properties to be added to it (if there is strong demand for it as every property should undergo security audit).
    You can specify arbitrary property if you sign your application and JNLP file.

  • Java.util.Array

    Exception in thread "main" java.lang.ClassCastException: Card
    at java.util.Arrays.mergeSort(Arrays.java:1044)
    at java.util.Arrays.sort(Arrays.java:997)
    at CardPlayer.sortHand(CardPlayer.java:91)
    at Game.main(Game.java:75)
    i get this error message after I call a sort method using the java.util.Array
    does anyone know why, or do u need more code?
    thanks

    The Card object needs to implement the Comparable interface if an array of them is to be sorted. The ClassCastException occurs when the sorting code attempts to assign a Card Object to a Comparable variable. The API documentation refers to this problem like this:
    Throws:
    ClassCastException - if the array contains elements that are not mutually comparable (for example, strings and integers).

  • Using java.util.Arrays.binarySearch

    Hi,
    I tried the following code
    import java.util.Arrays ;
    class SecondTry {   
    public static void main(java.lang.String args[]) {
    int xyz[] = new int[10];
    xyz[0] = 5;
    xyz[1] = 6;
    xyz[2] = 1;
    Arrays.sort(xyz);
    System.out.println(Arrays.binarySearch(xyz,5));
    i expected to see a result of 1. But i get a 8.
    I am sure i must be doing something wrong. But not able to figure out what exactly is wrong. Could somebody help?
    TIA,
    Babu

    hi there,
    .The output was 8 because u have declared the array size to be 10,so the values which are not assigned would be assigned to zero,so if you change the array size to 3,u would get the desired output :)
    cheers
    class SecondTry {
    public static void main(java.lang.String args[]) {
    int xyz[] = new int[3]; //change to three
    xyz[0] = 5;
    xyz[1] = 6;
    xyz[2] = 1;
    Arrays.sort(xyz);
    System.out.println(Arrays.binarySearch(xyz,5));

  • Trouble extending java.util.Arrays

    I have written some utility functions for dealing with arrays and I would like to bundle them into a class along with java's built-in array functions (java.util.Arrays). To do this, I tried to extends the class java.util.Arrays like this:
    public class ArrayUtils extends java.util.Arrays
    /* some static methods */
    When I try to compile this with javac (even with no class body between the braces), I get an error "error:Cannot find constructor "Arrays" with matching parameters [JLS 15.12]". Does anyone know what's going on here? Why is the compiler looking for a constructor? And why can't it find one? I would very much appreciate your insight. Thanks. Eli

    Does anyone know what's
    going on here? Why is the compiler looking for a
    constructor? And why can't it find one?Conceputually....
    Inheritance exists to allow one to inherit from an object. In java objects can be created by using a class. However classes in java do not have to be objects. And you are trying to inherit from something that is not an object.
    One of the other uses for class in java is to group a number of convienent functions together. (Grouped functions do NOT represent a class.) That is what java.util.Arrays is.
    Technically....
    The class java.util.Arrays has a private constructor which means you can't derive anything from it.

  • Private static ArrayList within java.util.Arrays

    I was recently reviewing the code in java.util.Arrays (class version 1.45 - Java version 1.4.1). Beginning on line 2289 is a private static class named ArrayList. I'm completely baffled as to why the author created this slimmed-down private class (which would be, incidentally, returned by the Arrays.asList(Object[] a) method) rather than use the public class java.util.ArrayList. Can anyone offer an explanation?
    Thanks,
    John

    from JDK JAVADoc:
    asList
    public static List asList(Object[] a)
    Returns a fixed-size list backed by the specified array. (Changes to the returned list "write through" to the array.) This method acts as bridge between array-based and collection-based APIs, in combination with Collection.toArray. The returned list is serializable.
    So the private ArrayList extends java.util.ArrayList, and any changes made this list does not affect the internal Object[].... in other words can not be changed.

  • Java.util.Properties methods load & store

    Does java.util.Properties methods load & store produce & load platform independent code?

    You mean that it is better to use loadFromXML(InputStream in) and storeToXML(OutputStream os, String comment) methods of this class in order to have platform independent code?

  • Java.lang.NoSuchMethodError: java/util/Vector method revove...

    After using jexegen from microsoft to make EXE. I receive this error when i execute the my EXE :
    java.lang.NoSuchMethodError: java/util/Vector method revove...
    Any body know why?
    If i execute from JBuilder i have no problem!

    hi, i don't have much experience with M$ java products, but as far as i remember, M$ java stopped developping since jdk 1.1.4 (or 1.1.7).
    maybe that's the reason for throwing this exception. if you want to "exe" your class-file, try JToExe.
    greetzzz
    chris

  • AsList(java.lang.Object[]) in java.util.Arrays cannot be applied to (int[])

    hi all,
    i'm getting the above error msg when trying to compile a simple array prog...
    while at it, is there another simple way to print the contents
    of an array to the console in a single statement except using the asList method??? .. like :
    int[] myArray = {1,2,3,4};
    System.out.println(myArray);
    ==================================
    here's the code for my program :-
    tks in advance.
    import java.util.*;
    public class ListArray {
    public static void main(String args[]) {
         int[] anArray = {2,7,5,8,3};
         for (int i = 0; i < anArray.length; i++) {
         System.out.println("Element No : " + (i+1) + " = " + anArray);
         System.out.println("All the Elements : " + Arrays.asList(anArray));

    Funnily enough, thats because int[] is not an array of Objects.
    You can make your listing method work by writing this instead:
    for (int index = 0; index < anArray.length; index++) {
      System.out.println("Element No: " + (index + 1) + " = " + anArray[index]);
    }

  • Error: java.lang.ClassCastException: java.util.Arrays$ArrayList

    Hi,
    How to solve this error?
    I get the error at this line of code in my program.
    java.util.ArrayList list= (java.util.ArrayList)obj;
    Please help how to solve this problem.
    Thanks,
    cmbl

    cmbl wrote:
    How to solve this error?
    I get the error at this line of code in my program.
    java.util.ArrayList list= (java.util.ArrayList)obj; Don't do this cast.
    Why are you doing this cast anyway? I think you need to show a small bit of compilable code (or almost compilable except perhaps for this error) and some more explanation.

  • Sorting array vs sorting paginated array

    ...pulling in a long list of photos in a gallery, and I have
    a sort function working within the pages of data fine. I need to
    bring it back out of the paging stuff so that it sorts the data,
    THEN passes to the paging function.
    My data comes from mysql > php > xml > Flex into an
    ArrayCollection, referred to in MXML as {acSlides}.
    Pass the array collection to the paging system like:
    <utils:FXCPager id="fxcPager" pageIndex="{currentPage}"
    pageSize="{pageSize}" dataProvider="{acSlides}" />
    then assign in repeater:
    <mx:Repeater id="slideRepeater"
    dataProvider="{fxcPager.pageData}">...</>
    There is a button for sorting that calls a function a la:
    private function sortByRating():void {
    var sort:Sort = new Sort();
    sort.fields = [new SortField("rating",false,true)];
    fxcPager.pageData.sort = sort;
    toggleRating = false;
    fxcPager.pageData.refresh();
    What do I need to do to get this sort function to work on the
    {acSlides} array collection instead of {fxcPager.pageData} ???
    Thanks!

    OK I have resolved the error by importing the class adGroup. However now I am back to the original problem which is how to sort the DisplayName alphabetically and keep the associated link in tact. I created the class to avoid sorting parellel arrays but I am afraid it solved nothing as I have no idea how to sort the class. I tried just sorting it like an array:
      Arrays.sort(bAD.getGroups()but receive the following error:
    java.lang.ClassCastException: com.mylbean.adGroup incompatible with java.lang.Comparable
    at java.util.Arrays.mergeSort(Arrays.java:1160)
    at java.util.Arrays.sort(Arrays.java:1131)
    >
    I would assume this message is caused because I cannot sort a class array using this method. But being newer to Java I really have no idea how to get the class to sort by DisplayName before displaying to the user.
    So at this point the code works fine but how do I display alphabetically? All suggestions are appreciated.

  • Webb Exception - java.util.zip.ZipException: error in opening zip file

              I am tring to run my Servlet with myWAR.war. So I started first installing the CookieCounter example that came with weblogic, I did exactly as the document said but I getting the following exception:
              Thu Jan 04 11:26:45 MST 2001:<E> <HTTP> Error reading Web application '/weblogic/myserver/cookieWar.war'
              java.util.zip.ZipException: error in opening zip file
              at java.util.zip.ZipFile.open(Native Method)
              at java.util.zip.ZipFile.<init>(ZipFile.java:69)
              at weblogic.utils.jar.JarFile.<init>(JarFile.java:57)
              at weblogic.utils.jar.JarFile.<init>(JarFile.java:44)
              at weblogic.t3.srvr.HttpServer.loadWARContext(HttpServer.java:582)
              at weblogic.t3.srvr.HttpServer.initServletContexts(HttpServer.java, Compiled Code)
              at weblogic.t3.srvr.HttpServer.start(HttpServer.java:388)
              at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java, Compiled Code)
              at weblogic.t3.srvr.T3Srvr.main(T3Srvr.java:827)
              at java.lang.reflect.Method.invoke(Native Method)
              at weblogic.Server.startServerDynamically(Server.java:99)
              at weblogic.Server.main(Server.java:65)
              at weblogic.Server.main(Server.java:55)
              at weblogic.NTServiceHelper.run(NTServiceHelper.java:19)
              at java.lang.Thread.run(Thread.java:479)
              Has anybody encountered the problem before I created the jar using jar cvf cookieWar.war cookie- under the command line
              

    I have seen problems like this in the past. When you create your war file, try using "jar
              cv0f" so that the jar file won't be compressed...
              mark bouchard wrote:
              > I am having this same error... the strange thing is i have two different ear files...
              > one of them works, the other doesn't. there are NO differences between them according
              > to Araxis Merge... both will deploy, and both show servlets as being registered,
              > but i can only call the servlets from one...
              >
              > what is BEA's suggested way of creating an ear file? on NT and on UNIX please....
              >
              > use the java.util.zip methods? or use a utility like jar or winzip? Personally,
              > i've found this deployment to be HIGHLY flakey at best.... my same ear files
              > deploy perfectly with iPlanet's app server.
              >
              > Mark Spotswood <[email protected]> wrote:
              > >I think this is basically the same as a file not found error.
              > >The error message says it can't open the file. Its looking
              > >for the file under: /weblogic/myserver/cookieWar.war
              > >Make sure the file is in that directory/readable, etc.
              > >--
              > >mark
              > >
              > >Paul Garduno wrote:
              > >
              > >> Just to let you know, I am getting the same error message. I haven't
              > >worked on it but hope to at some point. I would like to know if the
              > >Weblogic people have seen this error.
              > >>
              > >> Paul Garduno
              > >>
              > >> bionic99 wrote:
              > >>
              > >> > I am tring to run my Servlet with myWAR.war. So I started first installing
              > >the CookieCounter example that came with weblogic, I did exactly as
              > >the document said but I getting the following exception:
              > >> > Thu Jan 04 11:26:45 MST 2001:<E> <HTTP> Error reading Web application
              > >'/weblogic/myserver/cookieWar.war'
              > >> > java.util.zip.ZipException: error in opening zip file
              > >> > at java.util.zip.ZipFile.open(Native Method)
              > >> > at java.util.zip.ZipFile.<init>(ZipFile.java:69)
              > >> > at weblogic.utils.jar.JarFile.<init>(JarFile.java:57)
              > >> > at weblogic.utils.jar.JarFile.<init>(JarFile.java:44)
              > >> > at weblogic.t3.srvr.HttpServer.loadWARContext(HttpServer.java:582)
              > >> > at weblogic.t3.srvr.HttpServer.initServletContexts(HttpServer.java,
              > >Compiled Code)
              > >> > at weblogic.t3.srvr.HttpServer.start(HttpServer.java:388)
              > >> > at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java, Compiled Code)
              > >> > at weblogic.t3.srvr.T3Srvr.main(T3Srvr.java:827)
              > >> > at java.lang.reflect.Method.invoke(Native Method)
              > >> > at weblogic.Server.startServerDynamically(Server.java:99)
              > >> > at weblogic.Server.main(Server.java:65)
              > >> > at weblogic.Server.main(Server.java:55)
              > >> > at weblogic.NTServiceHelper.run(NTServiceHelper.java:19)
              > >> > at java.lang.Thread.run(Thread.java:479)
              > >> >
              > >> > Has anybody encountered the problem before I created the jar using
              > >jar cvf cookieWar.war cookie- under the command line
              > >
              

  • Org.exolab.castor.xml.MarshalException:Unable to instantiate java.util.List

    Hi,
    I am using castor to unmarshal an xml into a java object.
    This object has member variables as collections (List).
    Even though in the mapping file I used collections attribute of <field> tag and has set it to arraylist, it is still throwing this exception.
    After doing a bit of research on this,I found that since UnmarshalHandler uses reflection to create object from xml, it is trying to invoke java.util.List.newInstance() which is causing this problem.
    The class which I am trying to unmarshal is an already existing class and I cannot change the type of the member variables to ArrayList from List.
    How can it be resolved?

    The exception trace is as below :
    Caused by: java.lang.InstantiationException: java.util.List() method not
    found
    at
    org.exolab.castor.xml.UnmarshalHandler.createInstance(UnmarshalHandler.java:2584)
    at
    org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:2348)
    at
    org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:1436)
    at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown
    Source)
    at
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown
    Source)

  • Java.util.zip.DataFormatException: unknown compression method

    I'm trying to decompress data from an oralce database into a file, but I'm getting error. Any assistance would be greatly appreciated .
    package com.citi.blob;
    import java.sql.*;
    import java.io.*;
    import java.util.zip.Inflater;
    public class PullBlob {
         public static void main(String[] args) {
              // DB Connection info
              String userName="user";
              String passWord="password";
              //Production Database
              String dataBase="ABCD";
              //Production URL
              String url = "jdbc:oracle:thin:@111.2222.333.444:8080:" + dataBase;
              System.out.println("args length is" + args.length);
              // Sort out args
              if(args.length<2) {
                   System.out.println("Usage: java PullBLOB product acctnum optional-out-file");
                   System.exit(1);
              String product = args[0];
              String acctnum = args[1];
              String fileName = null;
              if(args.length>=3) {
                   fileName = args[2];
              Connection con = null;
              try {
                   // Establish connection
                   Class.forName("oracle.jdbc.driver.OracleDriver");
                   con = DriverManager.getConnection(url, userName, passWord);
                   Statement stmt = con.createStatement();
                   // Sort out the output stream
                   boolean toFile=false;
                   PrintWriter fout = null;
                   if(fileName!=null) {
                        File file = new File(fileName);
                        FileOutputStream fos = new FileOutputStream(file);
                        fout = new PrintWriter(fos);
                        toFile = true;
                   String query = "SELECT stm_cmp_xml FROM pld_stm WHERE prd_nm = 'JACKS_BOX' and act_num='9988556622'";
                   System.out.println(query);
                   ResultSet rs = stmt.executeQuery(query);
    //                      System.out.println("Number of records fetchted " + rs.getFetchSize());
                   if(rs.next()) {
                        //Blob xml = rs.getBlob("inv_cmp_xml");
                        Blob xml = rs.getBlob("stm_cmp_xml");
                        InputStream in = xml.getBinaryStream();
                        ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
                        int data;
                        while ((data = in.read()) != -1) {
                             byteStream.write((byte)data);
                        byte[] compressedData = byteStream.toByteArray();
                        in.close();
                        Inflater decompressor = new Inflater();
                        decompressor.setInput(compressedData);
                        // Create an expandable byte array to hold the decompressed data
                        ByteArrayOutputStream bos = new ByteArrayOutputStream(compressedData.length);
                        // Decompress the data
                        //byte[] buf = new byte[TEMP_BUFFER_SIZE];
                        // use a 1 meg buffer for improved speed
                        byte [] buf = new byte[1048576];
                        while (!decompressor.finished()) {
                                  int count = decompressor.inflate(buf);
                                  bos.write(buf, 0, count);
                        buf=null;
                        bos.close();
                        //Get the decompressed data
                        byte[] decompressedData = bos.toByteArray();
                        String stmtXml = new String(decompressedData).trim();
                        if(toFile) {
                             fout.println(stmtXml);
                        else {
                             System.out.println(stmtXml);
                     else { // No result
                        System.out.println("Couldn't find stmt for " + acctnum );
                   if(fout!=null) fout.close();
              catch(Exception e) {
                   System.out.println(e.getMessage());
                   e.printStackTrace();
              finally {
                   try {
                        if(con!=null) con.close();
                   catch(Exception e) {
                        // Whatever
    }here is the output and error I receieve:
    args length is3
    SELECT stm_cmp_xml FROM pld_stm WHERE prd_nm = 'JACKS_BOX'  and act_num='9988556622'
    unknown compression method
    java.util.zip.DataFormatException: unknown compression method
         at java.util.zip.Inflater.inflateBytes(Native Method)
         at java.util.zip.Inflater.inflate(Unknown Source)
         at java.util.zip.Inflater.inflate(Unknown Source)
         at com.citi.blob.PullBlob.main(PullBlob.java:95)

    Take a look at class ZipFile.
    o Create one on your input.
    o Get an enumeration of the entries - the headers for your files within the zip file.
    o Ask for the input stream of the file you want.
    o Read the data - it is unzipped for you.

Maybe you are looking for

  • Wifi problems with new ipad

    I'm trying to learn how to correct wifi problems with new iPad.  It is the wifi only, 64GB model.  I want to be able to use it at work, where we have a great wifi network.  I can usually connect to our network with no problem, but after an hour or so

  • Switching color modes/ classic OS 9 = danger?

    I was running an old game in classic OS 9 mode with 256 colors and it worked just fine. A few days later my graphics card ( Radeon 256 ) bit the dust (terrible blocky distorted patterns covering the entire screen) For the moment, I'm having to use th

  • Delete print in PDF for Dashboard

    Hello All. Please help me. I want then user can print dashboard only in HTML. How can I delete element PDF from button with printer on Dashboard? Thank you all.

  • Charset in uploaded file

    Hi all, I'm developing a internationalized web application. Should work all over the world, all languages. One function is to allow the user to upload his CSV with contacts, exported from Outlook or GMail for example. Everything seems to work fine if

  • A lot of Ads on my facebook page after upgrading to Firefox 5.0

    Hi, I have Problem with my Facebook account page. I am always having ads on my Facebook pages and its only appear if I am using Firefox 5.0, It was not appearing with the old Firefox, also I used other explorer to open the Facebook page & I don't hav