1. 程式人生 > >JAVA物件排序之獲取最小負載數

JAVA物件排序之獲取最小負載數

package com.opensource.sort;

import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Random;
import java.util.concurrent.CopyOnWriteArrayList;

import org.apache.commons.collections.CollectionUtils;

/**
 *
 * @author Cache John
 * @email
[email protected]
 *
 */
public class ComparatorSort
{
    private static final List<AogInfo> avaibleAogList = new CopyOnWriteArrayList<AogInfo>();
   
    /**
     * 獲取最小負載數
     *
     * @param avaibleAogList
     * @return
     */
    private static AogInfo getMinLoadAogInfo(final List<AogInfo> avaibleAogList)
    {
        AogInfo aogInfo = null;
       
        if (CollectionUtils.isNotEmpty(avaibleAogList))
        {
            AogInfo[] arrays = new AogInfo[avaibleAogList.size()];
            avaibleAogList.toArray(arrays);
            Arrays.sort(arrays, new Comparator<AogInfo>()
            {
                @Override
                public int compare(AogInfo o1, AogInfo o2)
                {
                    return (int)(o1.getAssignNo() - o2.getAssignNo());
                }
            });
           
            aogInfo = arrays[0];
        }
       
        return aogInfo;
    }
   
    /**
     * @param args
     */
    public static void main(String[] args)
    {
        // 生成隨即物件
        Random random = new Random();
       
        for (int i = 0; i < 5; i++)
        {
            avaibleAogList.add(new AogInfo(random.nextInt(100)));
        }
       
        // 生成隨即物件
        System.out.println("生成隨即物件為:");
        for (AogInfo o : avaibleAogList)
        {
            System.out.println(o.getAssignNo());
        }
       
        // 獲取最小隨即物件
        System.out.println("獲取最小隨即物件為:" + getMinLoadAogInfo(avaibleAogList).toString());
       
    }
   
}

class AogInfo
{
    private int assignNo;
   
    public AogInfo(int assignNo)
    {
        this.assignNo = assignNo;
    }
   
    public int getAssignNo()
    {
        return assignNo;
    }
   
    public void setAssignNo(int assignNo)
    {
        this.assignNo = assignNo;
    }
   
    @Override
    public String toString()
    {
        return "AogInfo [assignNo=" + assignNo + "]";
    }
   
}

相關推薦

JAVA物件排序獲取負載

package com.opensource.sort; import java.util.Arrays; import java.util.Comparator; import java.util.

【COGS 2051】王者

ret turn include div sizeof set urn har 中間 這個其實就是在說明相鄰的點不能取,我們發現只要其滿足這個條件他總能走出來,那麽我們就最小割就是了,我們先黑白染色,S 一排黑點 一排白點 T 對於相鄰的點我們就直接中間連INF,於是就滿足

VMware安裝CentOS二——化安裝CentOS

VMware CentOS 1、上文已經創建了一個虛擬機,現在我們點擊開啟虛擬機。2、虛擬機進入到安裝的界面,在這裏我們選擇第一行,安裝或者升級系統。3、這裏會提示要檢查光盤,我們直接選擇跳過。 4、這裏會提示我的硬件設備不被支持,點擊OK,實際對安裝使用沒有影響的,其他電腦沒有出現這個提示。5

Java物件學習建立物件——使用靜態工廠方法代替構造器缺點

最近學習Android知識,發現Java好多的基礎知識運用的真的很一般,所以決定在重新梳理一下,現在Kotlin也來了,在Android之路上,留給我看Java的時間不多了。       靜態我們就來簡單介紹一下,使用靜態工廠方法建立物件相較於構造器建立的物件的優缺

Java物件學習建立物件——使用靜態工廠方法代替構造器優點(四)

最近學習Android知識,發現Java好多的基礎知識運用的真的很一般,所以決定在重新梳理一下,現在Kotlin也來了,在Android之路上,留給我看Java的時間不多了。       靜態我們就來簡單介紹一下,使用靜態工廠方法建立物件相較於構造器建立的物件的優缺

Java物件學習建立物件——使用靜態工廠方法代替構造器優點(二)

最近學習Android知識,發現Java好多的基礎知識運用的真的很一般,所以決定在重新梳理一下,現在Kotlin也來了,在Android之路上,留給我看Java的時間不多了。       靜態我們就來簡單介紹一下,使用靜態工廠方法建立物件相較於構造器建立的物件的優缺

Java物件學習建立物件——使用靜態工廠方法代替構造器優點(一)

      最近學習Android知識,發現Java好多的基礎知識運用的真的很一般,所以決定在重新梳理一下,現在Kotlin也來了,在Android之路上,留給我看Java的時間不多了。       靜態我們就來簡單介紹一下,使用靜態工

棧表中獲取值,時間複雜度為O(1)

       近期複習資料結構,看到網上有一道演算法題,該題目曾經是google的一道面試題,國內的網際網路公司也紛紛效仿。我也順便複習之。        題目內容為:對現在的stack(棧)資料結構進行改進,加一個

Java】 劍指offer(45) 把組排成

code .com stringbu print ide san blog int urn 本文參考自《劍指offer》一書,代碼采用Java語言。 更多:《劍指Offer》Java實現合集 題目    輸入一個正整數數組,把數組裏所有數字拼接起來排成一個數,打印

java高階反射獲取欄位(三)

package com.jk.fs; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; /**  *  &nbs

java高階反射獲取建構函式(二)

前提:Person類中有有參無參的建構函式,供測試用 package com.jk.fs; import java.lang.reflect.Constructor; /**  * 反射機制(獲取Class中的建構函式)  * @author sx123  

java高階反射獲取class

前提:在com.jk.bean裡面建立一個Person類,新增get/set方法,toString方法。還有各種私有和公有方法,供測試用。 package com.jk.fs; import com.jk.bean.Person; /**  * 要想對位元組碼檔案進行解剖,必須

opencv minAreaRect獲取方框函式總結

不得不說,opencv的函式還是很豐富的,最近專案需求發現opencv還有minAreaRect這個函式,這個函式的功能就是: @param points Input vector of 2D points, stored in std::vector\<\> or Mat */ CV_

貪心演算法典型應用——以前進次數到達陣列最後一個位置

1、題目說明: 輸入一個所有元素都是自然數的陣列,初始狀態你的位置位於第1個元素,每個元素的位置表示1步,當前所在位置的元素數值表示你下一次前進能夠移動的最大步數,你的目標是以最小的前進次數從陣列的第一個元素移動到陣列的最後一個元素位置,你需要輸出每次前進的步數。 2、舉例:

資料結構——暢通工程區域性花費問題

7-1 暢通工程之區域性最小花費問題 (35 分) 某地區經過對城鎮交通狀況的調查,得到現有城鎮間快速道路的統計資料,並提出“暢通工程”的目標:使整個地區任何兩個城鎮間都可以實現快速交通(但不一定有直接的快速道路相連,只要互相間接通過快速路可達即可)。現得到城鎮道路統計表

PTA 暢通工程區域性花費問題 (35 分)

  某地區經過對城鎮交通狀況的調查,得到現有城鎮間快速道路的統計資料,並提出“暢通工程”的目標:使整個地區任何兩個城鎮間都可以實現快速交通(但不一定有直接的快速道路相連,只要互相間接通過快速路可達即可)。現得到城鎮道路統計表,表中列出了任意兩城鎮間修建快速路的費用,以及該道路是否已經修

《劍指offer》系列 把陣列排成Java

連結 牛客:把陣列排成最小的數 題目描述 輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。例如輸入陣列{3,32,321},則打印出這三個數字能排成的最小數字為321323。 思路 1、全排列 求出陣列中所有數字的全排列

如何實現可以獲取值的棧?

小史是一個應屆生,雖然學的是電子專業,但是自己業餘時間看了很多網際網路與程式設計方面的書,一心想進BAT。 今天他又去BAT中的一家面試了。 簡單的自我介紹後,面試官給了小史一個問題。   面試現場 題目:我現在需要實現一個棧,這個棧除了可以進行普通的pus

LDO的輸入輸出壓差和負載電流

1、輸入和輸出的壓差 LDO的輸入輸出的壓差是有要求的,如果太小會導致工作不正常。 AMS1117,在輸入6.2V,輸出5.0V(即:壓差1.2V)時,輸出紋波超過100mV。將輸入提高到6.5V(即:壓差提高到1.5V)後,輸出紋波減小到20mV以內。可見,該型號對輸出波

R語言開發非線性二乘法瞭解下

當對真實世界資料建模進行迴歸分析時,我們觀察到模型的方程很少是給出線性圖的線性方程。 反而是在大多數情況下,現實世界資料模型的方程式涉及更高程度的數學函式,如3或sin函式的指數。 在這種情況下,模型的曲線給出了曲線而不是線性。線性和非線性迴歸的目標是調整模型引數的值以找到最