欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

guava中的基礎工具有哪些

這期內(nèi)容當中小編將會給大家?guī)碛嘘Pguava中的基礎工具有哪些,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

黔江ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

1. 基本工具[Basic utilities]
Optional類:
/**
         * Optional 多用于map取值
         * key 存在,如果是非null值,則返回原映射值;如果是null值則返回or后面的默認值
         * key 不存在,返回or后面的默認值
         */
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("aaa", 111);
        map.put("bbb", 222);
        map.put("ccc", 333);
        map.put("ddd", 444);
        System.out.println(map.get("eee")); // 返回null值

        Object eee = Optional.fromNullable(map.get("eee")).or("555");
        System.out.println(eee);
         /*
          * jdk 1.8 已經(jīng)實現(xiàn)
          * key存在, 如果defaultValue和映射的值不一樣, 則返回defaultValue, 否則返回原映射值;
          * key不存在, 返回默認值
         */
        Object fff = map.getOrDefault(map.get("fff"), "666");
        System.out.println(fff);

        // defaultValue 側重于給鍵重新賦值,Optional側重于判斷null。
結果:
null
555
666
        
Preconditions類:
    // 用來檢查方法的入?yún)⑹欠穹蠗l件 。。。。。。。。
    // 主要有checkNotNull、checkArgument、checkElementIndex
    public class PreconditionsTest {

    public static void main(String[] args) {

        PreconditionsTest prec = new PreconditionsTest();

        try {
            System.out.println(prec.sqrt(-3.0));
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());
        }

        try {
            System.out.println(prec.sum(null, 3));
        } catch (NullPointerException e) {
            System.out.println(e.getMessage());
        }

        try {
            System.out.println(prec.getValue(5));
        } catch (IndexOutOfBoundsException e) {
            System.out.println(e.getMessage());
        }
    }

    private int getValue(int i) {

        int[] data = {11, 22, 33, 44, 55};
        Preconditions.checkElementIndex(i, data.length, "Illegal Argument passed: Invalid index.");

        return data[i];
    }

    private int sum(Integer a, Integer b) {
        a = Preconditions.checkNotNull(a, "Illegal Argument passed: First parametere is Null.");
        b = Preconditions.checkNotNull(b, "Illegal Argument passed: Second parametere is Null.");

        return a + b;
    }

    private double sqrt(double v) {

        Preconditions.checkArgument(v > 0.0, "Illegal Argument passed: Negative value %s.", v);

        return  Math.sqrt(v);
    }
}
結果:
Illegal Argument passed: Negative value -3.0.
Illegal Argument passed: First parametere is Null.
Illegal Argument passed: Invalid index. (5) must be less than size (5)


Objects類:
// 主要方法有 equals、hashcode、toString、compare/compareTo、comparisonChain

public class ObjectsTest {

    public static void main(String[] args) {

        String testName = "root";
        String realName = "root";
        
        // 代替了testName != null && realName.equals(testName)
        if (Objects.equal(testName, realName)) {
            System.out.println(testName + "::" + realName);  
        }

        Student s1 = new Student("Mbhesh", "Pcrashar", 1, "VI");
        Student s2 = new Student("Mbhesh", "Pbrashar", 1, "VI");
        Student s3 = new Student("Mahesh", "Parashar", 1, "VI");
        Student s4 = new Student("Achesh", "Parashar", 1, "VI");
        Student s5 = new Student("Suresh", null, 3, null);
        List<Student> stu = new ArrayList<>();
        stu.add(s1);
        stu.add(s2);
        stu.add(s3);
        stu.add(s4);
        stu.add(s5);
        Collections.sort(stu);
        for (int i = 0; i < stu.size(); i++) {
            System.out.println(stu.get(i).getFirstName() + "::" + stu.get(i).getLastName());
        }
        
        // MoreObjects.toStringHelper 輸出字符串更靈活
        System.out.println(MoreObjects.toStringHelper(s1).add("Name", s1.getFirstName() + " " + s1.getLastName()).add("Class", s1.getClassName()).add("Roll No", s1.getRollNo()).toString());
        System.out.println(MoreObjects.toStringHelper(s2).add("firstName", s2.getFirstName()).add("lastName", s2.getLastName()));
    }
}
    
    
class Student implements Comparable<Student> {

    private String firstName;
    private String lastName;
    private int rollNo;
    private String className;

    public Student(String firstName, String lastName, int rollNo, String className) {

        this.firstName = firstName;
        this.lastName = lastName;
        this.rollNo = rollNo;
        this.className = className;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Student student = (Student) o;
        return rollNo == student.rollNo &&
                Objects.equal(firstName, student.firstName) &&
                Objects.equal(lastName, student.lastName) &&
                Objects.equal(className, student.className);
    }

    @Override
    public int hashCode() {
        return Objects.hashCode(firstName, lastName, rollNo, className);
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public int getRollNo() {
        return rollNo;
    }

    public void setRollNo(int rollNo) {
        this.rollNo = rollNo;
    }

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    @Override
    public int compareTo(Student student) {
        return ComparisonChain.start().compare(this.firstName, student.firstName).compare(this.lastName, student.lastName).result();

    }
}

輸出結果:
root::root
Achesh::Parashar
Mahesh::Parashar
Mbhesh::Pbrashar
Mbhesh::Pcrashar
Suresh::null
Student{Name=Mbhesh Pcrashar, Class=VI, Roll No=1}
Student{firstName=Mbhesh, lastName=Pbrashar}

Ordering類:
// 可以跳過實現(xiàn)Comparator, 直接繼承Ordering

        Ordering<String> byLengthOrdering = new Ordering<String>() {
            @Override
            public int compare(String str1, String str2) {
                return Ints.compare(str2.length(), str1.length());
            }
        };

        List<String> train = new ArrayList<>();
        train.add("a");
        train.add("aba");
        train.add("abbb");
        train.add("bbba");
        train.add("aaaaa");
        Collections.sort(train, byLengthOrdering);
        System.out.println(train.toString());
結果: [aaaaa, abbb, bbba, aba, a]
        
//鏈式調(diào)用時,從后往前讀. 可以很容易控制null值  ........
        Ordering<Fruit> fruitOrdering = Ordering.natural().nullsFirst().onResultOf(new Function<Fruit, String>() {
            @Nullable
            @Override
            public String apply(@Nullable Fruit fruit) {
                return fruit.shape;
            }

        });

        List<Fruit> fruits = new ArrayList<Fruit>();
        Fruit doubleApple = new Fruit("蘋果","橢圓");
        fruits.add(doubleApple);
        fruits.add(new Fruit("橘子","圓形"));
        fruits.add(new Fruit("榴蓮",null));
        fruits.add(doubleApple);

        Collections.sort(fruits, fruitOrdering);
        for (Fruit fruit : fruits) {
            System.out.println(fruit.name+"::"+fruit.shape);
        }
        
        
class Fruit{
    String name;
    @Nullable String shape;

    public Fruit(String name, String shape) {
        this.name = name;
        this.shape = shape;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Nullable
    public String getShape() {
        return shape;
    }

    public void setShape(@Nullable String shape) {
        this.shape = shape;
    }
}
結果:
榴蓮::null
橘子::圓形
蘋果::橢圓
蘋果::橢圓

上述就是小編為大家分享的guava中的基礎工具有哪些了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享題目:guava中的基礎工具有哪些
網(wǎng)頁路徑:http://aaarwkj.com/article10/peiido.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站內(nèi)鏈、網(wǎng)站設計公司、網(wǎng)頁設計公司、響應式網(wǎng)站自適應網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設
熟女亚洲一区精品久久| 国产亚洲av看码精品永久| 91福利免费在线看| 久久久精品免费中文视频| 未满18禁止入内在线观看| 亚洲三级黄片免费播放| 动漫美女视频在线看黄| 五月婷婷丁香在线观看| 久久香蕉国产线看观看亚洲| 久久综合给合综合久久| 日本一区二区三区中文字幕不卡| 日韩国产人妻一区二区| 欧美日韩一级特黄大片| 亚洲国产日韩在线精品| 97久久精品亚洲中文字幕| 国产伦精品一区二区三区免费视频| 在线观看免费国产b片| 我想看日韩一级黄色片| 九九视频在线观看免费观看| 高颜值紧身牛仔裤国产精品| 亚洲欧美日韩高清一区二区| 人妻少妇性色精品专区av| 92午夜福利精品视频| 久草福利资源在线观看视频| 亚洲中国av一区二区| 99久久久国产精品蜜臀| 亚洲视频精品一区二区三区| 免费人成网站在线观看| 亚洲国产精品伦理在线看| 亚洲成人大片免费在线观看| 视频一区二区视频三区| 日韩成年人高清精品不卡一区二区| 国产亚洲av看码精品永久| 婷婷六月开心激情五月| 福利在线午夜绝顶三级| 小草少妇视频免费看视频| 亚洲国产日韩欧美第一页| 国产精品白嫩初高中害羞小美女| 极品少妇一级人妻av| 久久久精品在线免费视频| 亚洲男人天堂中文字幕|