Câu hỏi của tôi là liên quan đến tối ưu hóa trong java bằng cách sử dụng trình biên dịch Android. Sẽ map.values () trong sau đây được gọi là mỗi lần lặp lại, hoặc sẽ trình biên dịch Android tối ưu hóa nó ra.phương pháp trong foreach và cho vòng trong java
LinkedHashMap<String, Object> map;
for (Object object : map.values())
{
//do something with object
}
Tương tự như vậy, đây là một ví dụ khác. sẽ aList.size() được gọi là mỗi lần lặp?
List<Object> aList;
for (int i = 0; i < aList.size(); i++)
{
object = aList.get(i);
//do something with i
}
Và sau tất cả điều này, liệu nó có thực sự quan trọng nếu nó gọi phương thức mỗi lần lặp lại? Map.values () và List.size() có làm được gì nhiều không?
Đây là một câu hỏi Java thực sự không liên quan gì đến Android. –
Tôi hiểu được sự quan tâm của câu hỏi này, nhưng đối với bất kỳ mục đích thực tế nào, tôi đặc biệt khuyên bạn nên sử dụng mã hồ sơ trước khi tối ưu hóa nó. –
@PhilippReichart - Nó có ý nghĩa hoàn hảo để hỏi liệu một kiểu mã hóa có một lợi thế hiệu năng vốn có hơn một kiểu khác. Ngoài ra, hồ sơ có giới hạn của nó. Nếu bạn đang mã hóa cho Android, mã của bạn có khả năng chạy trên nhiều nền tảng khác nhau, một số trong đó có thể có trình biên dịch JIT, một số trong đó sẽ không có, và một số trong đó thậm chí không tồn tại. –