<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Scott@JAVA

    Java, 一杯濃濃的咖啡伴你到深夜

    《Java 5.0 Tiger》Chapter 1

    Chapter 1. What's New?

    1.1 Working with Arrays

    String[] s1 = "1""2""3" };
    System.out.println(Arrays.toString(s1));
    String[][] s2 
    = "1""2""3" }"4""5""6" } };
    System.out.println(Arrays.deepToString(s2));
    String[][] s3 
    = "1""2""3" }"4""5""6" } };
    System.out.println(Arrays.deepEquals(s2, s3));
    /* --- console output --- */
    [123]
    [[
    123], [456]]
    true

    The first method to take note of, at least for Tiger fans, is toString( ). This handles the rather annoying task of printing arrays for you. While this is trivial to write on your own, it's still nice that Sun takes care of it for you now.

    Another similar, but also new, method is deepToString( ). This method takes in an object array, and prints out its contents, including the contents of any arrays that it might contain.

    Finally, Arrays provides a deepEquals( ) method that compares multidimensional arrays.

    1.2 Using Queues

    Another cool collection addition is the java.util.Queue class, for all those occasions when you need FIFO (first-in, first-out) action.

    Queue q = new LinkedList();
    q.offer(
    "First");
    q.offer(
    "Second");
    q.offer(
    "Third");
     Object o;
     
    while ((o = q.poll()) != null)
             System.out.println(o);

    Use offer(), poll() instead of add(), remove() respectivelly. If you want the head without removing it, ues element() or peek().

    In Tiger, LinkedList has been retrofitted to implement the Queue interface. While you can use it like any other List implementation, it can also be used as a Queue implementation.

    1.3 Ordering Queues Using Comparators

    PriorityQueue, a Queue with Comparator. If you don't specify a Comparator, natural ordering occurs.

    import java.util.Comparator;
    import java.util.PriorityQueue;
    import java.util.Queue;

    public class PriorityQueueTester {
        
    public static void main(String[] args) {
            Queue
    <Integer> pq = new PriorityQueue<Integer>(20,
                    
    new Comparator<Integer>() {
                        
    public int compare(Integer i, Integer j) {
                            
    int result = i % 2 - j % 2;
                            
    if (result == 0)
                                result 
    = i - j;
                            
    return result;
                        }

                    }
    );
            
    // Fill up with data, in an odd order
            for (int i = 0; i < 20; i++{
                pq.offer(
    20 - i);
            }

            
    // Print out and check ordering
            for (int i = 0; i < 20; i++{
                System.out.print(pq.poll() 
    + " ");
            }

        }

    }

    /* --- console output --- */

    2 4 6 8 10 12 14 16 18 20 1 3 5 7 9 11 13 15 17 19 

    1.4 Overriding Return Types 

    class Point2D {
        
    protected int x, y;

        
    public Point2D() {
            
    this.x = 0;
            
    this.y = 0;
        }


        
    public Point2D(int x, int y) {
            
    this.x = x;
            
    this.y = y;
        }

    }


    class Point3D extends Point2D {
        
    protected int z;

        
    public Point3D(int x, int y) {
            
    this(x, y, 0);
        }


        
    public Point3D(int x, int y, int z) {
            
    this.x = x;
            
    this.y = y;
            
    this.z = z;
        }

    }


    class Position2D {
        Point2D location;

        
    public Position2D() {
            
    this.location = new Point2D();
        }


        
    public Position2D(int x, int y) {
            
    this.location = new Point2D(x, y);
        }


        
    public Point2D getLocation() {
            
    return location;
        }


    }


    class Position3D extends Position2D {
        Point3D location;

        
    public Position3D(int x, int y, int z) {
            
    this.location = new Point3D(x, y, z);
        }


        
    public Point3D getLocation() {
            
    return location;
        }

    }

    The key is the line public Point3D getLocation( ), which probably looks pretty odd to you, but get used to it. This is called a covariant return, and is only allowed if the return type of the subclass is an extension of the return type of the superclass. 

    1.5 Taking Advantage of Better Unicode

    In Tiger, Java has moved to support Unicode 4.0, which defines several characters that don't fit into 16 bits. This means that they won't fit into a char, and that has some far-reaching consequences. You'll have to use int to represent these characters, and as a result methods like Character.isUpperCase( ) and Character.isWhitespace( ) now have variants that accept int arguments. So if you're needing values in Unicode 3.0 that are not available in Unicode 3.0, you'll need to use these new methods..

    Most of the new characters in Unicode 4.0 are Han ideographs.

    1.6 Adding StringBuilder to the Mix 

    Replace all your StringBuffer code with StringBuilder code. Really—it's as simple as that. If you're working in a single-thread environment, or in a piece of code where you aren't worried about multiple threads accessing the code, or synchronization, it's best to use StringBuilder instead of StringBuffer.

    posted on 2005-12-25 16:24 Scott@JAVA 閱讀(393) 評論(0)  編輯  收藏 所屬分類: Java 5.0 Tiger

    主站蜘蛛池模板: 亚洲视频在线观看免费| 亚洲中文字幕无码久久精品1| 亚洲熟妇色自偷自拍另类| 成年女人A毛片免费视频| 亚洲精品成人区在线观看| 亚洲Aⅴ在线无码播放毛片一线天| 猫咪社区免费资源在线观看 | 亚洲一区爱区精品无码| 成人免费夜片在线观看| 亚洲人成网站色在线入口| 51午夜精品免费视频| 在线亚洲午夜理论AV大片| a级毛片高清免费视频就| 亚洲啪啪AV无码片| 伊人久久免费视频| 亚洲AV无码国产精品色| 破了亲妺妺的处免费视频国产| 亚洲国产精品无码第一区二区三区| 日韩免费在线观看| 瑟瑟网站免费网站入口| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 精品一卡2卡三卡4卡免费视频| 亚洲精品福利视频| 日韩不卡免费视频| 校园亚洲春色另类小说合集| 亚洲综合区小说区激情区| 久久久国产精品无码免费专区| 亚洲成av人片不卡无码| 热久久精品免费视频| 人妻18毛片a级毛片免费看| 亚洲第一成年男人的天堂| 无码国产精品一区二区免费式影视 | 日本无卡码免费一区二区三区| 一级一级一片免费高清| 亚洲AV无码1区2区久久| 日本阿v免费费视频完整版| 国产AV日韩A∨亚洲AV电影 | 免费国产成人α片| 亚洲欧美成aⅴ人在线观看| 久久亚洲欧洲国产综合| 免费成人福利视频|