2014-07-22 20 views
5

tôi một chút bị mắc kẹt trên một vấn đề này trong dự án hiện tại tôi đang làm việc trên:Thuật toán để so sánh một mảng các chuỗi với nhiều mảng các chuỗi

Tôi muốn lấy một ArrayList<String> (gọi nó là Một) và so sánh nó với nhiềuArrayList<String>, ghi lại số lượng chuỗi phù hợp trong các so sánh mảng này. Sau đó, tôi muốn đặt hàng nhiều mảng chuỗi theo thứ tự gần giống nhất với A.

Có ai biết bất kỳ thuật toán nhanh nào để thực hiện việc này không? Không tìm kiếm mã nhiều như thuật toán, nhưng tôi đang làm việc trong Java.

Cảm ơn!

+3

Lý do bỏ phiếu là gì? Làm thế nào là điều này "yêu cầu chúng tôi đề nghị hoặc tìm một công cụ, thư viện hoặc tài nguyên off-site yêu thích"? – arshajii

+0

Bạn sẽ sử dụng giá trị băm, có thể theo nhiều cách khác nhau. (Và trên thực tế, câu hỏi này là một bản dupe - nó được hỏi có thể mỗi 2 tuần một lần.) –

+0

oops, xin lỗi vì bản sao! không thể tìm ra câu hỏi xung quanh, nhưng có lẽ tôi không tìm đúng chỗ. Cảm ơn bạn đã giúp đỡ! – CatLord

Trả lời

4

Đề nghị của tôi:

  1. Đầu tiên đặt tất cả các Strings của ArrayList tham chiếu trong một Set.
  2. Chuyển qua tất cả các thành viên của mỗi ArrayLists khác và sử dụng set.contains(string) tìm hiểu số lượng phù hợp với từng danh sách mảng chứa.
  3. Đối với mỗi ArrayList, tạo một đối tượng bao bọc một ArrayList ngoài số lượng phù hợp cho ArrayList đó.
  4. Cuối cùng, sắp xếp các đối tượng bao bọc đó theo số lượng kết quả phù hợp.
+1

Và làm cho các đối tượng bọc số đối sánh 'ArrayList' + thực hiện' So sánh 'để có thể sắp xếp chúng. –

+0

Làm cho cảm giác, cảm ơn! – CatLord

Các vấn đề liên quan