الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعدة عاجلة في الarraylist

بدأه mekdif في 16 أغسطس 2009 · 1 رد · 480 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

ياخوان ان محتاج مساعده بالـarrayList

لان عندي Assignment واخر موعد للتسليم هو غدا.

ناخذ هذا الكود كمثال

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class bookStore {
  ArrayList <Book>  bookList=new ArrayList<Book>();

  public static void main(String[] args) {
      new bookStore().go();
  }


  class bookAuthor implements Comparator<Book>{
        public int compare(Book o1, Book o2) {
            return o1.getBookAuthor().compareTo(o2.getBookAuthor());
        }
  }
        class bookName implements Comparator<Book>{
        public int compare(Book o1, Book o2) {
            return o1.getBookName().compareTo(o2.getBookName());
        }


  }
   void go(){
       getBooks();
       System.out.println(bookList);
       bookAuthor authorCompare=new bookAuthor();
       Collections.sort(bookList,authorCompare);
       System.out.println( "print by author"+bookList);
       bookName nameCompare=new bookName();
       Collections.sort(bookList,nameCompare);
        System.out.println("print by name"+bookList);
   }
  void  getBooks(){
        try {

           BufferedReader readFile  =new BufferedReader( new FileReader(new File("books.txt")));
           String line=null;
            while((line=readFile.readLine())!=null){
             addBook(line);
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }



}
  void addBook(String lineToParse){
   String [] tokens  = lineToParse.split("/");
   Book b=new Book(tokens[0],tokens[1]);
   bookList.add(B);

  }
}

public class Book {
    private String bookName;
    private String bookAuthor;

    public Book(String bookName,  String bookAuthor) {
        this.setBookName(bookName);
        this.setBookAuthor(bookAuthor);
    }

    public String getBookName() {
        return bookName;
    }

    public String getBookAuthor() {
        return bookAuthor;
    }



    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public void setBookAuthor(String bookAuthor) {
        this.bookAuthor = bookAuthor;
    }

   public String toString(){
        return getBookName()+" "+getBookAuthor();
    }

}

كل ما اريده هو ان ابحث عن فيربل محدد داخل الـarraylist مثلا ابحث عن اسم كتاب معين وذالك باستخدام الـbinary search

هل علي ان اكتب الميثود بنفسي او يوجد طريقة بالجافا تسهل علي العملية

شكرا لكم

تم تعديل هذه المشاركة بواسطة mekdif في 16 أغسطس 2009 في 07:46

06_08_05_03_25_12_1123367112pray.jpg
#2

من الممكن استعمال دالة في الصنف java.util.Collections لعمل بحث Binnary Search كالتالي:

لنفرض أنه لدينا ArrayList يحتوي مجموعة من الـ String و نود أن نبحث عن ترتيب أحد هذه الـ String:

  1.  
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Collections;
  5.  
  6.  
  7. public class testing {
  8.  
  9.  
  10. public static void main(String[] args) {
  11.  
  12.  
  13.  
  14. ArrayList<String> ArList = new ArrayList<String>();
  15. ArList.add("1");
  16. ArList.add("2");
  17. ArList.add("3");
  18. ArList.add("4");
  19. ArList.add("5");
  20. ArList.add("6");
  21. ArList.add("7");
  22. ArList.add("8");
  23. ArList.add("9");
  24. ArList.add("10");
  25. ArList.add("11");
  26. ArList.add("12");
  27. int index = Collections.binarySearch(ArList,"8");
  28. System.out.println("index= "+ index);
  29.  
  30. }
  31.  
  32. }
  33.  
  34.  

في حالة ما إذا أردنا أن نعمل ترتيبا للعناصر قبل عمل البحث يمكن استعمال الدالة sort أولا كالتالي:

  1.  
  2. Collections.sort(ArList);
  3.  
  4.  

لكن بما أن الأمر متعلق بواجب دراسي فأغلب الظن أنه يجب عليك برمجة خوارزمية الـ Binary search بنفسك (ليست بالصعبة)

مواضيع مشابهة