Vì vậy, trong Java, bất cứ khi nào một phạm vi được lập chỉ mục được đưa ra, giới hạn trên hầu như luôn luôn là độc quyền.Giới hạn trên của các dải được lập chỉ mục luôn được giả định là độc quyền?
Từ java.lang.String
:
substring(int beginIndex, int endIndex)
Trả về một chuỗi mới đó là một chuỗi con của chuỗi này. Các chuỗi con bắt đầu vào quy định
beginIndex
và kéo dài đến nhân vật tại indexendIndex - 1
Từ java.util.Arrays
:
copyOfRange(T[] original, int from, int to)
from
- chỉ số ban đầu của dãy núi này được sao chép, bao gồm
to
- chỉ mục cuối cùng của phạm vi được sao chép, độc quyền.
Từ java.util.BitSet
:
set(int fromIndex, int toIndex)
fromIndex
- chỉ số của các bit đầu tiên được thiết lập.
toIndex
- chỉ mục sau khi đặt bit cuối cùng.
Như bạn có thể thấy, có vẻ như Java cố gắng làm cho nó trở thành một quy ước nhất quán rằng giới hạn trên là độc quyền.
Câu hỏi của tôi là:
- Đây có phải là thẩm quyền đề nghị chính thức?
- Có những vi phạm đáng chú ý mà chúng ta nên cảnh giác không?
- Có tên cho hệ thống này không? (Ala "0-based" vs "1-based")
Làm rõ: Tôi hoàn toàn hiểu rằng một bộ sưu tập của N
đối tượng trong một hệ thống dựa trên 0 được lập chỉ mục 0..N-1
. Câu hỏi của tôi là nếu phạm vi (2,4)
được cung cấp, nó có thể là 3 mục hoặc 2, tùy thuộc vào hệ thống. Bạn gọi những hệ thống này là gì?
LẠI, vấn đề không phải là "chỉ số đầu tiên 0
chỉ số cuối cùng N-1
" vs "chỉ số đầu tiên 1
chỉ số cuối cùng N
" hệ thống; được gọi là hệ thống dựa trên 0 dựa trên 1.
Vấn đề là "Có 3 thành phần trong (2,4)
" so với "Có 2 phần tử trong (2,4)
" hệ thống. Bạn gọi những điều này là gì, và là một trong những chính thức bị xử phạt trên khác?
Được gọi là phạm vi nửa mở. – fredoverflow
Ah vâng, tôi đã nghe thuật ngữ đó trước đây. Vì vậy, bạn có thể nói rằng Bộ sưu tập Java là "0 dựa trên phạm vi nửa mở", sau đó? – polygenelubricants