Software developer /programmer ලාගෙන් පොඩි උදව්වක් ඕනේ.

Hasistranger

Well-known member
  • Oct 21, 2010
    13,449
    7,132
    113
    Western Province, SL
    www.myjournalview.com
    මෙන්න මේකයි කතන්දරේ . database එකක data වගයක් තියෙනවා පහල විදිහට

    01.JPG



    database එකේ තියෙන data ටික arraylist එකකින් output කරන හැටි තමයි පහලින් තියෙන්නේ . මේ data ටික පෙන්නන්න ඕනේ කරන්නේ එකම item code එකෙන් තියෙන item qty ටික එකට එකතු කරලා.

    Spares_In_Data.forEach((String data) -> {

    Item_Code = data.split("\\-")[0];
    Item_Name = data.split("\\-")[1];
    Item_Brand = data.split("\\-")[2];
    Item_Model = data.split("\\-")[3];
    Item_S_Price = data.split("\\-")[4];
    Item_Qty = data.split("\\-")[5];



    System.out.println(Item_Code + "-" + Item_Name + "-" + Item_Brand + "-" + Item_Model + "-" + Item_S_Price + "-" + Item_Qty);

    });

    Output Result
    SP003-MAIN JET-HONDA-90-1000-30
    SP002-DIAPHRAM-HONDA-CB250F-5000-20
    SP001-SPARK PLUG-NGK-39E-1400-10
    SP006-SPARK PLUG-DENSO-38D-1300-20
    SP002-DIAPHRAM-HONDA-CB250F-5000-10
    SP003-MAIN JET-HONDA-90-1000-20
    SP004-PILOT JET-HONDA-39-1000-20
    SP005-FLOAT NEEDLE-HONDA-15D-900-15

    Expected Output
    SP001-SPARK PLUG-NGK-39E-IN-10
    SP002-DIAPHRAM-HONDA-CB250F-IN-30
    SP003
    -MAIN JET-HONDA-90-IN-50
    SP004-PILOT JET-HONDA-39-IN-20
    SP006-SPARK PLUG-DENSO-38D-IN-20
    SP005-FLOAT NEEDLE-HONDA-15D-IN-15


    ඒ code එක උඩ තියෙන expected output එක ගන්න පුළුවන් විදිහට වෙනස් කරලා දෙන්න . කරන්න පුළුවන් ඕනෑම දෙයක් කරලා
     

    Djice

    Well-known member
  • Jan 17, 2011
    4,422
    3,801
    113
    out of fucked up land
    1. retrieve data
    2. create a hashmap: string (item_code) => object or whatever
    3. iterate through the retrieved data one row at a time
      1. get the row
      2. check if the value exist in the hashmap
        1. if yes, get existing value and add value from the processed row and put it back to the hash map
        2. if no, add the item code and other info to hashmap
      3. repeat
    4. do whatever the fuck you want with the hashmap
    meka hariyanne nadda?
     
    • Like
    Reactions: Asmodeus

    Hasistranger

    Well-known member
  • Oct 21, 2010
    13,449
    7,132
    113
    Western Province, SL
    www.myjournalview.com
    1. retrieve data
    2. create a hashmap: string (item_code) => object or whatever
    3. iterate through the retrieved data one row at a time
      1. get the row
      2. check if the value exist in the hashmap
        1. if yes, get existing value and add value from the processed row and put it back to the hash map
        2. if no, add the item code and other info to hashmap
      3. repeat
    meka hariyanne nadda?

    mama oka try kara. pataluna ban wade. ethakota data repeat wela wikarayak natanawa. wade epama wela thama elakiri eke damme. item code sort wela thiyenawa nam karanna lesi. meka non sorted list ekak nisa wade tikak awul yanawa comparison ekedi

    ube rassawa SE da?

    na ban. meka hobby ekak. self taught
    ------ Post added on Jan 5, 2024 at 6:29 PM

    Output krana welawata sort krala ganna puluwan neh

    e wade karaganna baruwa ban me erila inne.
    ------ Post added on Jan 5, 2024 at 6:30 PM
     

    Djice

    Well-known member
  • Jan 17, 2011
    4,422
    3,801
    113
    out of fucked up land
    mama oka try kara. pataluna ban wade. ethakota data repeat wela wikarayak natanawa. wade epama wela thama elakiri eke damme. item code sort wela thiyenawa nam karanna lesi. meka non sorted list ekak nisa wade tikak awul yanawa comparison ekedi


    na ban. meka hobby ekak. self taught
    hashmap ekakin karala baluwada? item_code => qty wage ekak thiya gaththanam hena lesiine. aluth row ekak process karaddi thiyanawada baluwa, thiyanawa nam thiyana qty ekata add kala, naththan hashmap ekata aluthin add kala

    SE wela oka karaganda bainam linde panapan kiyanda haduwe
     

    TNHM

    Well-known member
  • Jan 3, 2017
    5,351
    15,599
    113
    Java:
    List<String> Spares_In_Data = List.of(
          "SP003-MAIN JET-HONDA-90-1000-30",
          "SP002-DIAPHRAM-HONDA-CB250F-5000-20",
          "SP001-SPARK PLUG-NGK-39E-1400-10",
          "SP006-SPARK PLUG-DENSO-38D-1300-20",
          "SP002-DIAPHRAM-HONDA-CB250F-5000-10",
          "SP003-MAIN JET-HONDA-90-1000-20",
          "SP004-PILOT JET-HONDA-39-1000-20",
          "SP005-FLOAT NEEDLE-HONDA-15D-900-15");
    Map<String, Map<String, Object>> map = new HashMap<>();
    Spares_In_Data.forEach(data -> {
       String Item_Code = data.split("\\-")[0];
       String Item_Name = data.split("\\-")[1];
       String Item_Brand = data.split("\\-")[2];
       String Item_Model = data.split("\\-")[3];
       String Item_S_Price = data.split("\\-")[4];
       Long Item_Qty = Long.parseLong(data.split("\\-")[5]);
       if(map.containsKey(Item_Code)) {
          Map<String, Object> obj = map.get(Item_Code);
          obj.put("Item_Qty", ((Long) obj.get("Item_Qty")) + Item_Qty);
       }else{
          Map<String, Object> obj = new HashMap<>();
          obj.put("Item_Code", Item_Code);
          obj.put("Item_Name", Item_Name);
          obj.put("Item_Brand", Item_Brand);
          obj.put("Item_Model", Item_Model);
          obj.put("Item_S_Price", Item_S_Price);
          obj.put("Item_Qty", Item_Qty);
          map.put(Item_Code, obj);
       }
    });
    map.values().stream()
          .sorted(Comparator.comparing(o -> o.get("Item_Code").toString())).toList()
          .forEach(i -> {
       System.out.println(
             i.get("Item_Code") + "-" + i.get("Item_Name") + "-" + i.get("Item_Brand") + "-" + i.get("Item_Model") + "-" + i.get("Item_S_Price") + "-" + i.get("Item_Qty")
       );
    });

    Sort කරලා නැ.
    එකත් කරලම දුන්න
     
    Last edited:

    Hasistranger

    Well-known member
  • Oct 21, 2010
    13,449
    7,132
    113
    Western Province, SL
    www.myjournalview.com
    hashmap ekakin karala baluwada? item_code => qty wage ekak thiya gaththanam hena lesiine. aluth row ekak process karaddi thiyanawada baluwa, thiyanawa nam thiyana qty ekata add kala, naththan hashmap ekata aluthin add kala

    SE wela oka karaganda bainam linde panapan kiyanda haduwe

    mama Hashlist ekak allagena dagala dagala hitiye ban. Hashmap ekak nathuwa
    :D :D

    Java:
    List<String> Spares_In_Data = List.of(
          "SP003-MAIN JET-HONDA-90-1000-30",
          "SP002-DIAPHRAM-HONDA-CB250F-5000-20",
          "SP001-SPARK PLUG-NGK-39E-1400-10",
          "SP006-SPARK PLUG-DENSO-38D-1300-20",
          "SP002-DIAPHRAM-HONDA-CB250F-5000-10",
          "SP003-MAIN JET-HONDA-90-1000-20",
          "SP004-PILOT JET-HONDA-39-1000-20",
          "SP005-FLOAT NEEDLE-HONDA-15D-900-15");
    Map<String, Map<String, Object>> map = new HashMap<>();
    Spares_In_Data.forEach(data -> {
       String Item_Code = data.split("\\-")[0];
       String Item_Name = data.split("\\-")[1];
       String Item_Brand = data.split("\\-")[2];
       String Item_Model = data.split("\\-")[3];
       String Item_S_Price = data.split("\\-")[4];
       Long Item_Qty = Long.parseLong(data.split("\\-")[5]);
       if(map.containsKey(Item_Code)) {
          Map<String, Object> obj = map.get(Item_Code);
          obj.put("Item_Qty", ((Long) obj.get("Item_Qty")) + Item_Qty);
       }else{
          Map<String, Object> obj = new HashMap<>();
          obj.put("Item_Code", Item_Code);
          obj.put("Item_Name", Item_Name);
          obj.put("Item_Brand", Item_Brand);
          obj.put("Item_Model", Item_Model);
          obj.put("Item_S_Price", Item_S_Price);
          obj.put("Item_Qty", Item_Qty);
          map.put(Item_Code, obj);
       }
    });
    map.values().stream()
          .sorted(Comparator.comparing(o -> o.get("Item_Code").toString())).toList()
          .forEach(i -> {
       System.out.println(
             i.get("Item_Code") + "-" + i.get("Item_Name") + "-" + i.get("Item_Brand") + "-" + i.get("Item_Model") + "-" + i.get("Item_S_Price") + "-" + i.get("Item_Qty")
       );
    });

    Sort කරලා නැ.
    එකත් කරලම දුන්න

    Thanks Machan. Try ekak deela balannam
    ------ Post added on Jan 5, 2024 at 6:41 PM
     

    CorD SaC

    Well-known member
  • Feb 4, 2015
    15,764
    28,121
    113
    Java:
    public class Main {
       public static void main(String[] args) {
    
      ArrayList < String > Spares_In_Data = new ArrayList < > ();
    
      Spares_In_Data.add("SP003-MAIN JET-HONDA-90-1000-30");
      Spares_In_Data.add("SP002-DIAPHRAM-HONDA-CB250F-5000-20");
      Spares_In_Data.add("SP001-SPARK PLUG-NGK-39E-1400-10");
      Spares_In_Data.add("SP006-SPARK PLUG-DENSO-38D-1300-20");
      Spares_In_Data.add("SP002-DIAPHRAM-HONDA-CB250F-5000-10");
      Spares_In_Data.add("SP003-MAIN JET-HONDA-90-1000-20");
      Spares_In_Data.add("SP004-PILOT JET-HONDA-39-1000-20");
      Spares_In_Data.add("SP005-FLOAT NEEDLE-HONDA-15D-900-15");
    
      Map < String, Integer > itemQuantities = new HashMap < > ();
    
      Spares_In_Data.forEach((String data) -> {
        String[] parts = data.split("\\-");
        String Item_Code = parts[0];
        String Item_Name = parts[1];
        String Item_Brand = parts[2];
        String Item_Model = parts[3];
        String Item_S_Price = parts[4];
        int Item_Qty = Integer.parseInt(parts[5]);
    
        itemQuantities.put(Item_Code, itemQuantities.getOrDefault(Item_Code, 0) + Item_Qty);
      });
    
      itemQuantities.forEach((Item_Code, totalQty) -> {
        System.out.println(Item_Code + "-" + totalQty);
      });
    
      }
    }

    Sum එක ගත්තට උබේ expected output එක එන්නෙ නෑ, TNHM ගෙ එකෙන් උබේ වැඩේ වෙනවා, නිකන් ට්‍රයි කලේ :rofl:
     
    Last edited:

    EKGuest

    Well-known member
  • Nov 16, 2022
    3,206
    5,703
    113
    ඕකට මචන් TreeMap එකක් පාවිච්චි කලොත් ලේසියි මොකද ඒකේ කී එකෙන් ඔටෝ සොර්ට් වෙන නිසා

    Java:
    List<String> Spares_In_Data = List.of(
    "SP003-MAIN JET-HONDA-90-1000-30",
    "SP002-DIAPHRAM-HONDA-CB250F-5000-20",
    "SP001-SPARK PLUG-NGK-39E-1400-10",
    "SP006-SPARK PLUG-DENSO-38D-1300-20",
    "SP002-DIAPHRAM-HONDA-CB250F-5000-10",
    "SP003-MAIN JET-HONDA-90-1000-20",
    "SP004-PILOT JET-HONDA-39-1000-20",
    "SP005-FLOAT NEEDLE-HONDA-15D-900-15");
    
    TreeMap<String, Integer> map = new TreeMap<>();
    
    Spares_In_Data.forEach(data -> {
       String Item_Code = data.split("\\-")[0];
       String Item_Name = data.split("\\-")[1];
       String Item_Brand = data.split("\\-")[2];
       String Item_Model = data.split("\\-")[3];
       String Item_S_Price = data.split("\\-")[4];
       int Item_Qty = Integer.parseInt(data.split("\\-")[5]);
      
       String itemKey = Item_Code + "-" + Item_Name + "-" + Item_Brand + "-" + Item_Model + "-";
      
       if(map.containsKey(itemKey))
            map.put(itemKey, map.get(itemKey) + Item_Qty);
       else
            map.put(itemKey, Item_Qty);
    });
    
    for (String key : map.keySet())
        System.out.println(key + map.get(key));



    Old Answer:

    ඕක මචන් SQL Query එකෙන්ම සම්පූර්ණ රිස්ල්ට් එකම ගන්න පුලුවන්. ඊට පස්සෙ නිකන්ම result set එක iterate කරලා ප්‍රින්ට් කරන්න තියෙන්නේ.

    Query (For SQL Server)

    SQL:
    SELECT
            Item_Code
            + '-' +  Item_Name
            + '-' +  Item_Brand
            + '-' +  Item_Model
            + '-' +  Item_Status
            + '-' +  CAST (SUM(Item_Qty) AS NVARCHAR)
            AS SummaryLine
    FROM Items
    WHERE Item_Status = 'IN'
    GROUP BY Item_Code, Item_Name, Item_Brand, Item_Model, Item_Status
    ORDER BY Item_Code;


    Query Output:

    image.png
     
    Last edited:

    Hasistranger

    Well-known member
  • Oct 21, 2010
    13,449
    7,132
    113
    Western Province, SL
    www.myjournalview.com
    Java:
    public class Main {
       public static void main(String[] args) {
    
      ArrayList < String > Spares_In_Data = new ArrayList < > ();
    
      Spares_In_Data.add("SP003-MAIN JET-HONDA-90-1000-30");
      Spares_In_Data.add("SP002-DIAPHRAM-HONDA-CB250F-5000-20");
      Spares_In_Data.add("SP001-SPARK PLUG-NGK-39E-1400-10");
      Spares_In_Data.add("SP006-SPARK PLUG-DENSO-38D-1300-20");
      Spares_In_Data.add("SP002-DIAPHRAM-HONDA-CB250F-5000-10");
      Spares_In_Data.add("SP003-MAIN JET-HONDA-90-1000-20");
      Spares_In_Data.add("SP004-PILOT JET-HONDA-39-1000-20");
      Spares_In_Data.add("SP005-FLOAT NEEDLE-HONDA-15D-900-15");
    
      Map < String, Integer > itemQuantities = new HashMap < > ();
    
      Spares_In_Data.forEach((String data) -> {
        String[] parts = data.split("\\-");
        String Item_Code = parts[0];
        String Item_Name = parts[1];
        String Item_Brand = parts[2];
        String Item_Model = parts[3];
        String Item_S_Price = parts[4];
        int Item_Qty = Integer.parseInt(parts[5]);
    
        itemQuantities.put(Item_Code, itemQuantities.getOrDefault(Item_Code, 0) + Item_Qty);
      });
    
      itemQuantities.forEach((Item_Code, totalQty) -> {
        System.out.println(Item_Code + "-" + totalQty);
      });
    
      }
    }

    Sum එක ගත්තට උබේ expected output එක එන්නෙ නෑ, TNHM ගෙ එකෙන් උබේ වැඩේ වෙනවා, නිකන් ට්‍රයි කලේ :rofl:

    ithuru tika karaganna puluwan ban

    ඕකට මචන් TreeMap එකක් පාවිච්චි කලොත් ලේසියි මොකද ඒකේ කී එකෙන් ඔටෝ සොර්ට් වෙන නිසා

    Java:
    List<String> Spares_In_Data = List.of(
    "SP003-MAIN JET-HONDA-90-1000-30",
    "SP002-DIAPHRAM-HONDA-CB250F-5000-20",
    "SP001-SPARK PLUG-NGK-39E-1400-10",
    "SP006-SPARK PLUG-DENSO-38D-1300-20",
    "SP002-DIAPHRAM-HONDA-CB250F-5000-10",
    "SP003-MAIN JET-HONDA-90-1000-20",
    "SP004-PILOT JET-HONDA-39-1000-20",
    "SP005-FLOAT NEEDLE-HONDA-15D-900-15");
    
    TreeMap<String, Integer> map = new TreeMap<>();
    
    Spares_In_Data.forEach(data -> {
       String Item_Code = data.split("\\-")[0];
       String Item_Name = data.split("\\-")[1];
       String Item_Brand = data.split("\\-")[2];
       String Item_Model = data.split("\\-")[3];
       String Item_S_Price = data.split("\\-")[4];
       int Item_Qty = Integer.parseInt(data.split("\\-")[5]);
     
       String itemKey = Item_Code + "-" + Item_Name + "-" + Item_Brand + "-" + Item_Model + "-";
     
       if(map.containsKey(itemKey))
            map.put(itemKey, map.get(itemKey) + Item_Qty);
       else
            map.put(itemKey, Item_Qty);
    });
    
    for (String key : map.keySet())
        System.out.println(key + map.get(key));



    Old Answer:

    ඕක මචන් SQL Query එකෙන්ම සම්පූර්ණ රිස්ල්ට් එකම ගන්න පුලුවන්. ඊට පස්සෙ නිකන්ම result set එක iterate කරලා ප්‍රින්ට් කරන්න තියෙන්නේ.

    Query (For SQL Server)

    SQL:
    SELECT
            Item_Code
            + '-' +  Item_Name
            + '-' +  Item_Brand
            + '-' +  Item_Model
            + '-' +  Item_Status
            + '-' +  CAST (SUM(Item_Qty) AS NVARCHAR)
            AS SummaryLine
    FROM Items
    WHERE Item_Status = 'IN'
    GROUP BY Item_Code, Item_Name, Item_Brand, Item_Model, Item_Status
    ORDER BY Item_Code;


    Query Output:

    image.png

    meka access db ekakin pull karana data tikak ban, db eka paththen kisima validation ekak wenne naha. data insert,delete karana eka witharai wenne
    ------ Post added on Jan 5, 2024 at 10:36 PM
     

    Mr.Curious

    Well-known member
  • May 22, 2022
    5,335
    5,068
    113
    PPython walin karanam easy nadda ?
    Java:
    List<String> Spares_In_Data = List.of(
          "SP003-MAIN JET-HONDA-90-1000-30",
          "SP002-DIAPHRAM-HONDA-CB250F-5000-20",
          "SP001-SPARK PLUG-NGK-39E-1400-10",
          "SP006-SPARK PLUG-DENSO-38D-1300-20",
          "SP002-DIAPHRAM-HONDA-CB250F-5000-10",
          "SP003-MAIN JET-HONDA-90-1000-20",
          "SP004-PILOT JET-HONDA-39-1000-20",
          "SP005-FLOAT NEEDLE-HONDA-15D-900-15");
    Map<String, Map<String, Object>> map = new HashMap<>();
    Spares_In_Data.forEach(data -> {
       String Item_Code = data.split("\\-")[0];
       String Item_Name = data.split("\\-")[1];
       String Item_Brand = data.split("\\-")[2];
       String Item_Model = data.split("\\-")[3];
       String Item_S_Price = data.split("\\-")[4];
       Long Item_Qty = Long.parseLong(data.split("\\-")[5]);
       if(map.containsKey(Item_Code)) {
          Map<String, Object> obj = map.get(Item_Code);
          obj.put("Item_Qty", ((Long) obj.get("Item_Qty")) + Item_Qty);
       }else{
          Map<String, Object> obj = new HashMap<>();
          obj.put("Item_Code", Item_Code);
          obj.put("Item_Name", Item_Name);
          obj.put("Item_Brand", Item_Brand);
          obj.put("Item_Model", Item_Model);
          obj.put("Item_S_Price", Item_S_Price);
          obj.put("Item_Qty", Item_Qty);
          map.put(Item_Code, obj);
       }
    });
    map.values().stream()
          .sorted(Comparator.comparing(o -> o.get("Item_Code").toString())).toList()
          .forEach(i -> {
       System.out.println(
             i.get("Item_Code") + "-" + i.get("Item_Name") + "-" + i.get("Item_Brand") + "-" + i.get("Item_Model") + "-" + i.get("Item_S_Price") + "-" + i.get("Item_Qty")
       );
    });

    Sort කරලා නැ.
    එකත් කරලම දුන්න
     

    Prof GHOST

    Junior member
  • Jan 18, 2018
    76
    87
    18
    Java:
            HashMap<String, String[]> dataMap = new HashMap<>();
    
            Spares_In_Data.stream()
                    .map((data) -> data.split("\\-"))
                    .forEach((record) -> {
                        if (dataMap.containsKey(record[0])) {
                            String[] currentRecord = dataMap.get(record[0]);
                            currentRecord[5] = String.valueOf(Integer.parseInt(currentRecord[5]) + Integer.parseInt(record[5]));
    
                            dataMap.put(record[0], currentRecord);
                        } else  {
                            dataMap.put(record[0], record);
                        }
                    });
    
            dataMap.forEach((k,record) -> {
                String Item_Code = record[0];
                String Item_Name = record[1];
                String Item_Brand = record[2];
                String Item_Model = record[3];
                String Item_S_Price = record[4];
                String Item_Qty = record[5];
    
                System.out.println(Item_Code + "-" + Item_Name + "-" + Item_Brand + "-" + Item_Model + "-" + Item_S_Price + "-" + Item_Qty);
            });
     
    Last edited:

    MihiCherub

    Well-known member
  • Sep 14, 2009
    18,939
    1
    9,739
    113
    Gampaha
    ඔහොම map වල data store කරන් ටික දවසක් ගියාම මොන data එක කොතනද කොහොමද හොයන්න බෑ. ඔන්න ඒ නිසා maintainability code එකක් ලිව්ව. පහසුවෙන් අදුන ගන්නයි scaleup කරන්නයි

    Java:
    import java.util.List;
    
    /**
     *
     * @author MihiCherub
     */
    public class Main {
    
        public static void main(String[] args) {
    
            SpareItemList itemList = SpareItemList.getInstance();
    
            List<String> spareData = List.of(
                    "SP003-MAIN JET-HONDA-90-1000-30",
                    "SP002-DIAPHRAM-HONDA-CB250F-5000-20",
                    "SP001-SPARK PLUG-NGK-39E-1400-10",
                    "SP006-SPARK PLUG-DENSO-38D-1300-20",
                    "SP002-DIAPHRAM-HONDA-CB250F-5000-10",
                    "SP003-MAIN JET-HONDA-90-1000-20",
                    "SP004-PILOT JET-HONDA-39-1000-20",
                    "SP005-FLOAT NEEDLE-HONDA-15D-900-15");
    
            for (String items : spareData) {
                String[] parts = items.split("-");
    
                itemList.addItems(new SpareItem(parts[0], parts[1], parts[2], parts[3],
                        Double.parseDouble(parts[4]), Double.parseDouble(parts[5])));
    
            }
    
            //Sorting
            itemList.sortByAsc();
    
            //Print data-----------------------------------
            itemList.getList().forEach((element) -> {
                System.out.println(element.toString());
            });
    
        }
    }

    Java:
    import java.util.Objects;
    
    /**
     *
     * @author MihiCherub
     */
    public class SpareItem {
    
        private String code;
        private String name;
        private String brand;
        private String model;
        private double salesPrice;
        private double qty;
    
        public SpareItem(String code, String name, String brand, String model, double salesPrice, double qty) {
            this.code = code;
            this.name = name;
            this.brand = brand;
            this.model = model;
            this.salesPrice = salesPrice;
            this.qty = qty;
        }
    
        /**
         * @return the code
         */
        public String getCode() {
            return code;
        }
    
        /**
         * @param code the code to set
         */
        public void setCode(String code) {
            this.code = code;
        }
    
        /**
         * @return the name
         */
        public String getName() {
            return name;
        }
    
        /**
         * @param name the name to set
         */
        public void setName(String name) {
            this.name = name;
        }
    
        /**
         * @return the brand
         */
        public String getBrand() {
            return brand;
        }
    
        /**
         * @param brand the brand to set
         */
        public void setBrand(String brand) {
            this.brand = brand;
        }
    
        /**
         * @return the model
         */
        public String getModel() {
            return model;
        }
    
        /**
         * @param model the model to set
         */
        public void setModel(String model) {
            this.model = model;
        }
    
        /**
         * @return the salesPrice
         */
        public double getSalesPrice() {
            return salesPrice;
        }
    
        /**
         * @param salesPrice the salesPrice to set
         */
        public void setSalesPrice(double salesPrice) {
            this.salesPrice = salesPrice;
        }
    
        /**
         * @return the qty
         */
        public double getQty() {
            return qty;
        }
    
        /**
         * @param qty the qty to set
         */
        public void setQty(double qty) {
            this.qty = qty;
        }
    
        @Override
        public int hashCode() {
            int hash = 7;
            hash = 53 * hash + Objects.hashCode(this.code);
            hash = 53 * hash + Objects.hashCode(this.name);
            hash = 53 * hash + Objects.hashCode(this.brand);
            hash = 53 * hash + Objects.hashCode(this.model);
            hash = 53 * hash + (int) (Double.doubleToLongBits(this.salesPrice) ^ (Double.doubleToLongBits(this.salesPrice) >>> 32));
            hash = 53 * hash + (int) (Double.doubleToLongBits(this.qty) ^ (Double.doubleToLongBits(this.qty) >>> 32));
            return hash;
        }
    
        @Override
        public boolean equals(Object obj) {
            if (this == obj) {
                return true;
            }
            if (obj == null) {
                return false;
            }
            if (getClass() != obj.getClass()) {
                return false;
            }
            final SpareItem other = (SpareItem) obj;
            if (Double.doubleToLongBits(this.salesPrice) != Double.doubleToLongBits(other.salesPrice)) {
                return false;
            }
            if (Double.doubleToLongBits(this.qty) != Double.doubleToLongBits(other.qty)) {
                return false;
            }
            if (!Objects.equals(this.code, other.code)) {
                return false;
            }
            if (!Objects.equals(this.name, other.name)) {
                return false;
            }
            if (!Objects.equals(this.brand, other.brand)) {
                return false;
            }
            return Objects.equals(this.model, other.model);
        }
    
        @Override
        public String toString() {
            return code + "-" + name + "-" + brand + "-" + model + "-" + salesPrice + "-" + qty;
        }
    
    }

    Java:
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;
    
    /**
     *
     * @author MihiCherub
     */
    public class SpareItemList {
    
        private final List<SpareItem> list;
    
        private SpareItemList() {
            list = new ArrayList<>();
        }
    
        public static SpareItemList getInstance() {
            return SpareItemListHolder.INSTANCE;
        }
    
        private static class SpareItemListHolder {
    
            private static final SpareItemList INSTANCE = new SpareItemList();
        }
    
        public void addItems(SpareItem item) {
    
            SpareItem itemByCode = this.getItemByCode(item.getCode());
    
            if (itemByCode != null) {
                itemByCode.setQty(itemByCode.getQty() + item.getQty());
            } else {
                list.add(item);
            }
        }
    
        //Pass by reference
        public List<SpareItem> getList() {
            return list;
        }
    
        public int getTotalItems() {
            return list.size();
        }
    
        public double getTotalQty() {
            double qty = 0;
    
            for (SpareItem item : list) {
                qty += item.getQty();
            }
            return qty;
        }
    
        public SpareItem getItemByCode(String itemCode) {
            for (SpareItem item : list) {
                if (item.getCode().equalsIgnoreCase(itemCode)) {
                    return item;
                }
            }
            return null;
        }
    
        public void removeAllFrom(int index) {
            //Captures the beginning of where u specify 'index' to the end and clears it
            list.subList(index, list.size()).clear();
        }
    
        public void removeAllUpto(int index) {
            //Captures the beginning '0' up to where u specify 'index' and clears it
            list.subList(0, index).clear();
    
        }
    
        public void sortByAsc() {
            // Case-insensitive ascending comparator
            Comparator<SpareItem> ascendingComparator = Comparator.comparing(SpareItem::getCode, String.CASE_INSENSITIVE_ORDER);
            Collections.sort(list, ascendingComparator);
        }
    
        public void sortByDsc() {
            // Case-insensitive ascending comparator
            Comparator<SpareItem> descendingComparator = Comparator.comparing(SpareItem::getCode, String.CASE_INSENSITIVE_ORDER).reversed();
            Collections.sort(list, descendingComparator);
        }
    
    }

    Java:
    /**
     *
     * @author MihiCHerub
     */
    import java.util.Comparator;
    
    public class ItemComparator implements Comparator<SpareItem> {
    
        private final boolean ascending;
    
        public ItemComparator(boolean ascending) {
            this.ascending = ascending;
        }
    
        @Override
        public int compare(SpareItem o1, SpareItem o2) {
            // Use String.CASE_INSENSITIVE_ORDER for case-insensitive comparison
            int comparison = o1.getCode().compareToIgnoreCase(o2.getCode());
            return ascending ? comparison : -comparison;
        }
    }
     
    • Like
    Reactions: Gwynbleidd

    Hasistranger

    Well-known member
  • Oct 21, 2010
    13,449
    7,132
    113
    Western Province, SL
    www.myjournalview.com
    Support karapu hamotama Thanks machanla. Mama okkoma answers tika balala. mata one widihata e tika modify karagena wade karagaththa .

    Java:

    Sort කරලා නැ.
    එකත් කරලම දුන්න

    ඕකට මචන් TreeMap එකක් පාවිච්චි කලොත් ලේසියි මොකද ඒකේ කී එකෙන් ඔටෝ සොර්ට් වෙන නිසා

    Java:
    List<String> Spares_In_Data = List.of(
    
    
    [CODE=sql]SELECT
            Item_Code
            + '-' +  Item_Name
            + '-' +  Item_Brand
            + '-' +  Item_Model
            + '-' +  Item_Status
            + '-' +  CAST (SUM(Item_Qty) AS NVARCHAR)
            AS SummaryLine
    FROM Items
    WHERE Item_Status = 'IN'
    GROUP BY Item_Code, Item_Name, Item_Brand, Item_Model, Item_Status
    ORDER BY Item_Code;


    Query Output:

    image.png


    ඔහොම map වල data store කරන් ටික දවසක් ගියාම මොන data එක කොතනද කොහොමද හොයන්න බෑ. ඔන්න ඒ නිසා maintainability code එකක් ලිව්ව. පහසුවෙන් අදුන ගන්නයි scaleup කරන්නයි

    Java:
    import java.util.List;

    Aththatama mama maha loku dewal igena gena naha. mama danne punchima punchi pramanayak. e danna tiken thamayi mama hobby ekak widihata mata ona karana apps hadaganne. e danna tikath thaniyama google karala balagaththa dewal mata ona widihata eheta meheta karala hadagaththa projects walin igena gaththa dewal.
    ------ Post added on Jan 6, 2024 at 9:47 AM