Set cũng là 1 dạng hash table. Chỉ khác là các phần tử trong Set được lưu trữ dưới dạng các cặp key-value(K,V) với các value là hằng số.
Ví dụ: 1 Set có các phần tử {1, 2, 3} thì bản chất đằng sau là 1 hash table có thể biểu thị dưới dạng object như sau: {1: true, 2: true, 3: true}
Do đó, để khởi tạo 1 Set ta cần phải lặp qua array (O(N)) và sử dụng phương thức Object.hasProperty() để kiểm tra phần tử có tồn tại chưa trước khi thêm vào.
Chào bạn, cảm ơn bài viết của bạn. Mình có một câu hỏi là mình thấy tất cả fields trong bảng đều push hết lên elasticsearch, trong case mình muốn put một vài cột lên thôi thì có options nào để cấu hình không bạn ?
Tiếp theo là tạo một biến để lấy data ở list:
static List<Accessory> _sampleData;
Sau đó gán data cho biến này trước khi sử dụng ở method build():
_sampleData = _getSampleData();
Sorry bạn vì mình đã không lưu source code lại. Những bài viết khác mình sẽ chú ý để source lại để cho mng tham khảo.
Cảm ơn bạn đã đọc bài
Cột deleted_at theo mình tìm hiểu thì không có đánh index. Thì sau này soft_deleted sẽ làm chậm đi hệ thống rất nhiều. Không biết laravel có cách khắc phục không nhỉ?
Chào bạn, mình thấy ý kiến của bạn khá hay, nó giúp tối ưu được query.
Người thiết kế hệ thống nên lưu trữ như vậy. Mình đã từng làm theo cách đấy, tuy nhiên nếu có khá nhiều luồng can thiệp vào DB mà mình không kiểm soát được, mình thường dùng thêm 1 thread để sync lại các giá trị đó, khoảng thời gian sinh tùy thuộc vào yêu cầu hệ thống.
Em đang đọc từ phần 1 qua, rồi đến làm thế nào để tạo và gọi _sampleData cũng như Accessory tự nhiên bị kẹt luôn. Anh có thể nói chi tiết thêm về các tạo/khai báo chúng được không?
@mrhoang thì câu mình hỏi là từ Udemy mà :v nên thấy Udemy 1 đằng nhưng câu kia 1 nẻo mới thắc mắc. ngoài ra là 15 instances chia 2 AZ thì không thể có số lượng bằng nhau được
THẢO LUẬN
Set cũng là 1 dạng hash table. Chỉ khác là các phần tử trong Set được lưu trữ dưới dạng các cặp key-value(K,V) với các value là hằng số. Ví dụ: 1 Set có các phần tử {1, 2, 3} thì bản chất đằng sau là 1 hash table có thể biểu thị dưới dạng object như sau: {1: true, 2: true, 3: true} Do đó, để khởi tạo 1 Set ta cần phải lặp qua array (O(N)) và sử dụng phương thức Object.hasProperty() để kiểm tra phần tử có tồn tại chưa trước khi thêm vào.
Thế nên time complexity vẫn là O(N).
Nếu add một array vào Set thì Set đó sẽ thêm 1 element mới chính là array mà ta? Vậy thì đâu có loại bỏ phần tử trùng nhau
@KienNguyen0207 bạn đợi nhé mình đợt này bận nhiều công việc quá chưa có thời gian viết. Sẽ ra sớm thôi ạ.
@loveruby Thực tế là đây nè
Chào bạn, cảm ơn bài viết của bạn. Mình có một câu hỏi là mình thấy tất cả fields trong bảng đều push hết lên elasticsearch, trong case mình muốn put một vài cột lên thôi thì có options nào để cấu hình không bạn ?
Viết tiếp đi bạn
hóng các bài sâu hơn tiếp sau của bạn @ledangtuanbk
Cái này đơn gỉan thôi bạn nha. Mình k còn source trong bài viết này nên làm tạm lại 1 cái Accessory là một class chứa data như sau:
class Accessory { int _id; String _title; int _price; String _imageUrl;
Accessory(this._id, this._title, this._price, this._imageUrl); } mình viết lại nên chắc sẽ thiếu vài trường ở trong bài viết.
Sau đó mình fake 1 list data như sau:
List<Accessory> _getSampleData() { return [ Accessory(1, "Asrock B40 pro", 2500000, "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT2VuTEit3BW0TDkQPGKtrwvklE7alcPZtxSg&usqp=CAU"), Accessory(1, "Asrock B40 pro", 2500000, "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT2VuTEit3BW0TDkQPGKtrwvklE7alcPZtxSg&usqp=CAU"), Accessory(1, "Asrock B40 pro", 2500000, "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT2VuTEit3BW0TDkQPGKtrwvklE7alcPZtxSg&usqp=CAU"), Accessory(1, "Asrock B40 pro", 2500000, "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT2VuTEit3BW0TDkQPGKtrwvklE7alcPZtxSg&usqp=CAU"), Accessory(1, "Asrock B40 pro", 2500000, "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT2VuTEit3BW0TDkQPGKtrwvklE7alcPZtxSg&usqp=CAU"), Accessory(1, "Asrock B40 pro", 2500000, "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT2VuTEit3BW0TDkQPGKtrwvklE7alcPZtxSg&usqp=CAU"), Accessory(1, "Asrock B40 pro", 2500000, "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT2VuTEit3BW0TDkQPGKtrwvklE7alcPZtxSg&usqp=CAU"), Accessory(1, "Asrock B40 pro", 2500000, "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT2VuTEit3BW0TDkQPGKtrwvklE7alcPZtxSg&usqp=CAU"), Accessory(1, "Asrock B40 pro", 2500000, "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT2VuTEit3BW0TDkQPGKtrwvklE7alcPZtxSg&usqp=CAU") ]; }
Tiếp theo là tạo một biến để lấy data ở list: static List<Accessory> _sampleData; Sau đó gán data cho biến này trước khi sử dụng ở method build(): _sampleData = _getSampleData(); Sorry bạn vì mình đã không lưu source code lại. Những bài viết khác mình sẽ chú ý để source lại để cho mng tham khảo. Cảm ơn bạn đã đọc bài
Cột deleted_at theo mình tìm hiểu thì không có đánh index. Thì sau này soft_deleted sẽ làm chậm đi hệ thống rất nhiều. Không biết laravel có cách khắc phục không nhỉ?
hoặc đọc code được MND implement bằng cách khử đệ quy https://github.com/behnammodi/polyfill/blob/master/array.polyfill.js
gem "swagger-block" => gem "swagger-blocks", gem "swagger-ui-engine" => gem "swagger_ui_engine"
Bài viết hay lắm bạn.
E gop y 1 chut a : Ben tren ghi tao file register.php e nghi phai la registration.php, Va tao file route.xml phai la routes.xml thieu s a.
nếu mảng đa chiều thì làm ntn vậy bạn ơi vd : [[1, [7,[8],7]2], 3, 4, 5, [6,[,[0,8,8]8,8] 7, 8, 9]];
Phần dùng
lastIndexOf()
là bậy rồi nha. Ví dụ chuỗiJavaScriptJava
thìlastIndexOf('Java')
không ra 0 đâu.Chào bạn, mình thấy ý kiến của bạn khá hay, nó giúp tối ưu được query. Người thiết kế hệ thống nên lưu trữ như vậy. Mình đã từng làm theo cách đấy, tuy nhiên nếu có khá nhiều luồng can thiệp vào DB mà mình không kiểm soát được, mình thường dùng thêm 1 thread để sync lại các giá trị đó, khoảng thời gian sinh tùy thuộc vào yêu cầu hệ thống.
Em đang đọc từ phần 1 qua, rồi đến làm thế nào để tạo và gọi _sampleData cũng như Accessory tự nhiên bị kẹt luôn. Anh có thể nói chi tiết thêm về các tạo/khai báo chúng được không?
đây nhé bạn https://github.com/dqhuy78/github-search/tree/develop
@mrhoang thì câu mình hỏi là từ Udemy mà :v nên thấy Udemy 1 đằng nhưng câu kia 1 nẻo mới thắc mắc. ngoài ra là 15 instances chia 2 AZ thì không thể có số lượng bằng nhau được