我已经接受了挑战,我必须从外部队列类(项目是私有的)获得给定索引的列表项的值。我不允许修改类,也不允许使用Reflection。是否有可能(在实际情况下,我宁愿创建公共访问器来获取项目值)?
@page {
size: Letter;
margin: 0in 0.44in 0.2in 0.44in;
}
答案 0 :(得分:5)
你可以:
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:nil
message:@"this is first line \nsecondLine should be center"
delegate:nil
cancelButtonTitle:nil
otherButtonTitles:nil, nil];
[alertView show];
Queue
中的所有元素
shift
ArrayList
并使用ArrayList
以相同的顺序将元素重新添加到Queue
,以便将push
恢复到原始状态。< / LI>
Queue
。{/ li>的index
个元素
醇>
它效率很低,但它解决了你的挑战。
答案 1 :(得分:0)
你可以试试这个
public class TestQueue {
public static void main(String[] args){
Queue q= Queue.create();
q.push(10);
q.push(20);
q.push(30);
q.push(40);
q.push(50);
System.out.println(q.shift());
}}
答案 2 :(得分:0)
以上源代码是Queue的基本实现。根据您的问题,我了解您要提取给定索引的项目。我认为你应该迭代数据以获得更好的索引。如果在找到该索引之前到达数组的末尾,则可以抛出ArrayIndexOutOfBoundsException
异常。
这是一个基本实现。
public void dataRetrieve() throws ArrayIndexOutOfBoundsException {
Queue queue = Queue.create();
queue.push(10);
queue.push(20);
queue.push(30);
queue.push(40);
queue.push(50);
int indexToRetrieve = 5;
int index = 0;
while(!queue.isEmpty()) {
int value = queue.shift();
if (index == indexToRetrieve) {
System.out.println(value);
return;
}
index++;
}
throw new ArrayIndexOutOfBoundsException();
}