- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Vì vậy, tôi gặp khó khăn trong việc hình thành câu trả lời cho câu hỏi sau đây. Tôi không tìm kiếm câu trả lời mà thay vào đó là những bước hữu ích mà tôi có thể thực hiện để cho phép tôi tự tìm ra câu trả lời. Lưu ý: Để trả lời những câu hỏi này, tôi đã lấy lớp tham chiếu và trình điều khiển. Câu hỏi như sau:
Q.1 Triển khai phương thức thay thế gói ADT bằng một đối tượng nhất định.
Q.2.Viết phương thức xóa để xóa từng phiên bản của một phần tử trong ArrayBag.
Câu hỏi 3. Cho ít nhất hai ví dụ về trường hợp gói cố định và hai ví dụ về trường hợp gói có thể thay đổi kích thước.
Đoạn mã sau là những gì tôi đã bắt đầu, nhưng không chắc liệu tôi có đi đúng hướng hay không:
a.1 công khai T thay thế(T theItem) {
Trình tạo ngẫu nhiên = Random mới();
int RandomPosition = Generator.nextInt(numberOfEntries);
Kết quả T = null;
if (!isEmpty() && (randomPosition >= 0)) {
result = bag[randomPosition]; // Mục nhập cần xóa
bag[randomPosition] = theItem; // Thay thế mục cần xóa bằng
// mục nhập cuối cùng
}
return result;
a.2 public void clear(T theItem) {
trong khi (!this.isEmpty(ArrayBag))
this.remove();
a.3 không chắc nó có liên quan đến các ví dụ mã hóa hay cái gì khác không.
Ngoài ra, lớp ArrayBag như sau để tham khảo:
import java.util.Arrays;
nhập java.util.Random;
lớp cuối cùng công khai ArrayBag triển khai BagInterface {
túi T[] cuối cùng riêng tư;
số int riêngOfEntries;
boolean riêng được khởi tạo = false;
int tĩnh cuối cùng DEFAULT_CAPACITY = 25;
int tĩnh cuối cùng MAX_CAPACITY = 10000;
/** Tạo một túi trống có sức chứa ban đầu là 25. */
công khai ArrayBag() {
cái này(DEFAULT_CAPACITY);
} // kết thúc hàm tạo mặc định
/**
* Tạo một túi rỗng có sức chứa nhất định.
*
* @param mong muốn Năng lực
* Dung lượng số nguyên mong muốn.
*/
công khai ArrayBag(int mong muốnCapacity) {
if (desiredCapacity <= MAX_CAPACITY) {
// Việc truyền diễn viên an toàn vì mảng mới chứa các mục rỗng
@SuppressWarnings("không được chọn")
T[] tempBag = (T[]) new Object[desiredCapacity]; // Bỏ chọn cast
túi = tempBag;
numberOfEntries = 0;
khởi tạo = đúng;
} else
ném IllegalStateException mới ("Cố gắng tạo túi"
+ “có dung lượng vượt quá” + “tối đa cho phép.”);
} // hàm tạo kết thúc
/**
* Thêm một mục mới vào túi này.
*
* @param newEntry
* Đối tượng được thêm vào dưới dạng mục mới.
* @return Đúng nếu phép cộng thành công hoặc sai nếu không.
*/
bổ sung boolean công khai (T newEntry) {
checkInitialization();
kết quả boolean = đúng;
nếu (isArrayFull()) {
kết quả = sai;
} else { // Khẳng định: kết quả ở đây là đúng
túi[numberOfEntries] = newEntry;
numberOfEntries++;
} // kết thúc nếu
return result;
} // kết thúc thêm
/**
* Truy xuất tất cả các mục có trong túi này.
*
* @return Một mảng mới được phân bổ của tất cả các mục trong túi này.
*/
công khai T[] toArray() {
checkInitialization();
// Việc truyền diễn viên an toàn vì mảng mới chứa các mục rỗng.
@SuppressWarnings("không được chọn")
T[] result = (T[]) new Object[numberOfEntries]; // Bỏ chọn cast
for (int chỉ mục = 0; chỉ số < numberOfEntries; chỉ mục++) {
kết quả[chỉ mục] = túi[chỉ mục];
} // kết thúc cho
return result;
// Lưu ý: Phần thân của phương thức này có thể bao gồm một câu lệnh return,
// nếu bạn gọi Arrays.copyOf
} // kết thúc mảng
/**
* Xem túi này có trống không.
*
* @return Đúng nếu túi này trống hoặc sai nếu không.
*/
boolean công khai isEmpty() {
trả về sốOfEntries == 0;
} // kết thúc làEmpty
/**
* Lấy số mục hiện tại trong túi này.
*
* @return Số nguyên các mục hiện có trong túi này.
*/
int công khai getCurrentSize() {
trả về sốOfEntries;
} // kết thúc getCurrentSize
/**
* Đếm số lần một mục nhất định xuất hiện trong túi này.
*
* @param anEntry
* Mục nhập được tính.
* @return Số lần anEntry xuất hiện trong ba này.
*/
public int getFrequencyOf(T anEntry) {
checkInitialization();
bộ đếm int = 0;
for (int chỉ mục = 0; chỉ số < numberOfEntries; chỉ mục++) {
if (anEntry.equals(bag[index])) {
bộ đếm++;
} // kết thúc nếu
} // kết thúc cho
bộ đếm trở lại;
} // kết thúc getFrequencyOf
/**
* Kiểm tra xem túi này có chứa một mục nhất định hay không.
*
* @param anEntry
* Mục để xác định vị trí.
* @return Đúng nếu túi này chứa một Mục nhập, hoặc sai nếu ngược lại.
*/
boolean công khai chứa(T anEntry) {
checkInitialization();
trả về getIndexOf(anEntry) > -1; // hoặc >= 0
} // cuối chứa
/** Xóa tất cả mục từ túi này */
khoảng trống công khai rõ ràng () {
trong khi (!this.isEmpty())
this.remove();
} // kết thúc rõ ràng
/**
* Loại bỏ một mục không xác định khỏi túi này, nếu có thể.
*
* @return Hoặc là mục đã bị xóa, nếu việc xóa thành công hoặc không có giá trị.
*/
công khai T xóa() {
checkInitialization();
Kết quả T = RemoveEntry(numberOfEntries - 1);
return result;
} // kết thúc xóa
/**
* Loại bỏ một lần xuất hiện của một mục nhất định khỏi túi này.
*
* @param anEntry
* Mục cần xóa.
* @return Đúng nếu xóa thành công hoặc sai nếu không.
*/
loại bỏ boolean công khai(T anEntry) {
checkInitialization();
int chỉ mục = getIndexOf(anEntry);
Kết quả T = RemoveEntry(index);
trả về anEntry.equals(kết quả);
} // kết thúc xóa
boolean công khai RemoveRandom() {
Trình tạo ngẫu nhiên = Random mới();
int RandomPosition = Generator.nextInt(numberOfEntries);
Kết quả T = RemoveEntry(randomPosition);
nếu (kết quả == null) {
trả về sai;
} khác {
trả về đúng sự thật;
}
}
@Ghi đè
boolean công khai bằng(Object obj) {
if (obj instanceof ArrayBag) {
ArrayBag otherArrayBag = (ArrayBag) obj;
if (numberOfEntries == otherArrayBag.numberOfEntries) {
// Tôi tạo các mảng mới để có thể thao tác với chúng
// và nó sẽ không thay đổi this.bag hoặc otherArrayBag.bag
T[] currentBagTempArray = toArray();
T[] otherBagTempArray = otherArrayBag.toArray();
Arrays.sort(currentBagTempArray);
Arrays.sort(otherBagTempArray);
for (int i = 0; i < numberOfEntries; i++) {
if (!currentBagTempArray[i].equals(otherBagTempArray[i])) {
trả về sai;
}
}
trả về đúng sự thật;
} khác {
trả về sai;
}
} khác {
trả về sai;
}
}
công khai ResizableArrayBag createResizableArray() {
T[] currentBagContents = toArray();
ResizableArrayBag newBag = new ResizableArrayBag(currentBagContents);
trả lại Túi mới;
}
// Trả về true nếu túi mảng đầy hoặc sai nếu không.
boolean riêng tư isArrayFull() {
return numberOfEntries >= bag.length;
} // kết thúc isArrayFull
// Xác định vị trí một mục nhất định trong túi mảng.
// Trả về chỉ mục của mục nhập, nếu được tìm thấy,
// hoặc -1 nếu không.
// Điều kiện tiên quyết: checkInitialization đã được gọi.
int riêng tư getIndexOf(T anEntry) {
int trong đó = -1;
tìm thấy boolean = sai;
chỉ số int = 0;
while (!found && (index < numberOfEntries)) {
if (anEntry.equals(bag[index])) {
tìm thấy = đúng;
ở đâu = chỉ mục;
} // kết thúc nếu
chỉ mục++;
} // kết thúc trong khi
// Khẳng định: Nếu ở đâu > -1, một Entry nằm trong túi mảng và nó
// bằng bag[where]; nếu không thì anEntry không có trong mảng.
trở về đâu;
} // kết thúc getIndexOf
// Loại bỏ và trả về mục nhập tại một chỉ mục nhất định trong mảng.
// Nếu không có mục nào như vậy tồn tại, trả về null.
// Điều kiện tiên quyết: 0 <= GivenIndex < numberOfEntries.
// Điều kiện tiên quyết: checkInitialization đã được gọi.
riêng tư T RemoveEntry(int GivenIndex) {
Kết quả T = null;
if (!isEmpty() && (givenIndex >= 0)) {
result = bag[givenIndex]; // Mục nhập cần xóa
int LastIndex = numberOfEntries - 1;
bag[givenIndex] = bag[lastIndex] // Thay thế mục cần xóa bằng
// mục nhập cuối cùng
bag[lastIndex] = null // Xóa tham chiếu đến mục cuối cùng
numberOfEntries--;
} // kết thúc nếu
return result;
} // kết thúc RemoveEntry
// Ném ra một ngoại lệ nếu đối tượng này không được khởi tạo.
kiểm tra khoảng trống riêng tưInitialization() {
nếu (!khởi tạo)
ném ngoại lệ bảo mật mới (
"Đối tượng ArrayBag không được khởi tạo đúng cách.");
} // kết thúc kiểm tra Khởi tạo
}//Kết thúc ArrayBag
câu trả lời hay nhất
Những người khác đang ở đó Triển khai lớp túi trong Java/Sử dụng mảng Túi được triển khai bằng cách sử dụng một mảng ở đây. Tôi chỉ xem mã, vì vậy nó có thể là một túi hỗn hợp.
Tôi giả sử rằng Túi giống như Bộ, ngoại trừ việc có thể lưu trữ cùng một đối tượng nhiều lần. Bạn có thể muốn triển khai một số loại bộ sưu tập riêng tư (có thể là một mảng như trên). chúng tôi gọi nó túi của tôi. Vì bạn đang sử dụng loại chung T,Túi của bạn sẽ chỉ chứa loại T sự vật.
Đối với Q1, phương thức thay thế() của bạn có thể cần lấy hai tham số: đối tượng được thay thế (ví dụ: tìm tôi
) và đối tượng bạn muốn thay thế (ví dụ: thay thế
). Nếu Túi của bạn có thể chứa các bản sao, bạn có thể muốn thay thế đối tượng phù hợp đầu tiên. Thay vì sử dụng Random(), bạn có thể muốn duyệt qua từng phần tử myBag và thay thế phần tử tìm thấy bằng phần tử bạn muốn thay thế. nếu không tìm thấy tìm tôi
, bạn có thể muốn đưa ra một lỗi. Vì vậy, việc khai báo phương thức có thể trông như thế này:
thay thế boolean công khai(T findMe, T thay thế)
nếu tìm thấy tìm tôi Nó trả về true, ngược lại nó trả về false.
Đối với Q2, bạn có thể tạo vòng lặp while để xóa phần tử đầu tiên trong myBag khi kích thước của myBag > 0.
Đối với Q3, không có mã hóa nào liên quan. Đây là một câu hỏi để suy nghĩ. Nhìn chung, một chiếc túi có kích thước cố định sẽ rất hữu ích nếu bạn biết ngay từ đầu rằng kích thước đó sẽ không thay đổi.
Các gói có thể thay đổi kích thước sẽ có ý nghĩa hơn trong nhiều trường hợp khi bạn không biết kích thước ngay từ đầu và rất có thể nó sẽ thu nhỏ hoặc tăng lên, chẳng hạn như danh sách chờ cho một lớp học.
Về java - loại bỏ và thay thế phương thức java, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/28353351/
Tôi muốn thực hiện tìm kiếm và thay thế trên một chuỗi, chẳng hạn như mật khẩu. Như bạn đã biết từ câu hỏi, chuỗi được thay thế sẽ trở thành sdvvzrug. Nhưng thật không may, đoạn mã sau xuất ra bbbbcaab: $search = ran
Tôi đang sử dụng futurize --stage2 áp dụng một số chuyển đổi mã nguồn để làm cho mã python2 và python3 tương thích. Một trong những cách khắc phục là thay thế tất cả các phân vùng a/b bằng old_div(a/b), tôi muốn tránh điều này
Tôi đang sử dụng RStudio nhưng đầu ra trên bảng điều khiển của tôi bị cắt bớt. Tôi không thể tìm cách ngừng cắt ngắn (tôi đã thử tìm kiếm ?options và tìm kiếm trên Google lâu hơn mức tôi muốn thừa nhận). EDIT: Tôi xin lỗi! Tên dài ban đầu của tôi là "Đây
Tôi có một chồng các mảnh mà tôi sử dụng phép thay thế và phép cộng. Mã để thêm hoặc thay thế đoạn của tôi (trong Hoạt động của tôi) như sau
Tôi đang chèn một số chuỗi vào một mảng, nhưng trước khi làm điều đó tôi muốn làm theo những gì chủ đề nói. Để chỉ thay thế khoảng trắng bằng %20, tôi làm điều này: Name.push(linkText.replace(" ", "%20"));
Tôi đang cố gắng biên dịch và kiểm tra mã mà tôi đã thấy trực tuyến Mở rộng địa chỉ IP. Tuy nhiên, khi tôi cố gắng biên dịch nó, tôi gặp lỗi về phương thức thay thế StringBuilder. Nó nói: IPadd.java:52:
Tôi đang cố gắng viết lại một phần mã của mình bằng các tính năng mới nhất của dplyr bằng cách thay thế data.frame() bằng data_frame() và cbind() bằng bind_cols():
Gần đây tôi tình cờ gặp thay thế() và "[ x.tst s.tst s.tst [,1] [,2] [,3] [1,] 0 0 0
Tôi đang tự hỏi làm cách nào để thực hiện thay thế trong một tham số nhất định. Nếu bạn có một dòng như thế này: 123,Xin chào,Thế giới,(Tôi ở đây), không xác định và bạn muốn thay thế Thế giới bằng Foobar thì đó là một nhiệm vụ đơn giản
Làm thế nào để thoát khỏi dấu ngoặc kép trong một chuỗi? Ví dụ: đầu vào: "Không ai" đầu ra: \"Không ai\" Tôi đã thử một cái gì đó như thế này nhưng nó không hoạt động: String name = "Nobody";
Tôi đang làm một cái gì đó như: SQL sql sQl SqL var ps = document.getElementsByTagName('p'); for(var i = 0; i nhưng nó không thay thế văn bản.
Tôi đang cố gắng thay thế tất cả " bằng \" và phân tích chuỗi bằng JSON nhưng trình duyệt đưa ra lỗi SyntaxError: JSON Parse error: Unrecognized token '\' Dưới đây là mã.
Xin chào mọi người, đang gặp khó khăn ở đây... Có thể thay thế bất cứ thứ gì giữa dấu gạch chéo lên đầu tiên bằng "" nhưng giữ phần còn lại không? Ví dụ var sẽ là chuỗi "/anything-here-this-needs-to-be-re
Trong mã bên dưới, cảnh báo (a) trong hàm thay thế JavaScript sẽ cảnh báo về các chuỗi khớp, trong trường hợp này sẽ là {name} và {place}. Điều này hoạt động như được mô tả trong tài liệu tài liệu javascript, tức là.
+-----------------------------+ | bảng | ----
Tôi đang cố gắng thay thế một chuỗi chứa " bằng \", dưới đây là quy trình tôi đã thử String s="\"/test /string\""; ");
var text = "a's ..a's ...\"... "; text = Convert(text); function Convert( text ) { var n = text
Tôi đang cố gắng sử dụng hàm thay thế trong JavaScript nhưng tôi gặp sự cố. strNewDdlVolCannRegion = strNewDdlVolCannRegion.replace(/_being
Được rồi, trước hết tôi thực sự xin lỗi vì bài đăng cuối cùng của mình, nhưng tôi thực sự cần trợ giúp và tôi sẽ đưa những gì tôi thực sự muốn vào một mã rõ ràng hơn. Mình không giỏi javascript nên mong bạn giúp đỡ.
Tôi đang viết một ghi chú và gặp phải rào cản. Có thể có cách hiệu quả hơn để thực hiện việc này nhưng tôi khá mới với Python. Tôi đang cố gắng tạo danh sách địa chỉ IP do người dùng tạo. Tôi đang sử dụng bản in để xem các giá trị được tạo có chính xác không. khi tôi chạy mã này
Tôi là một lập trình viên xuất sắc, rất giỏi!