public SortedLinkedList getOdd()
{
SortedLinkedList res = new SortedLinkedList(this.type);
ListIterator<Integer> iter = this.list.listIterator();
Integer i = 0;
while (iter.hasNext()) {
Integer k = iter.next();
for (i = 0; i <= k; i++) {
if (i % 2 == 0) {
res.add(k);
}
}
}
return res;
}
Не могу разобраться с итераторами, здесь он выводит просто подряд числа, как сделать так, чтобы выводились числа, которые стоят на нечетной позиции ? Для полноты понимания, лучше будет наверное скинуть целый код:
public class SortedLinkedList
{
LinkedList <Integer> list;
boolean type;
public SortedLinkedList (boolean _type)
{
list = new LinkedList<Integer>();
type = _type;
}
public void add (int data)
{
ListIterator<Integer> iter = list.listIterator();
while (iter.hasNext())
{
if (iter.next() == data )
{
if (this.type == true)
{
iter.previous();
iter.add(data);
return;
}
else
return;
}
iter.previous();
if (iter.next() > data)
{
iter.previous();
iter.add(data);
return;
}
}
iter.add(data);
}
public void remove (int data)
{
ListIterator<Integer> iter = list.listIterator();
while (iter.hasNext())
{
if (iter.next() == data)
{
iter.remove();
}
}
}
public boolean equals (Object _list)
{
if (! (_list instanceof SortedLinkedList) )
{
return false;
}
if (_list == this)
{
return true;
}
ListIterator<Integer> iter = this.list.listIterator();
ListIterator<Integer> iter2 = ((SortedLinkedList) _list).list.listIterator();
while ( iter.hasNext() && iter2.hasNext() )
{
if (iter.next() != iter2.next())
{
return false;
}
}
return true;
}
public SortedLinkedList getOdd()
{
SortedLinkedList res = new SortedLinkedList(this.type);
ListIterator<Integer> iter = this.list.listIterator();
Integer i = 0;
while (iter.hasNext()) {
Integer k = iter.next();
for (i = 0; i <= k; i++) {
if (i % 2 == 0) {
res.add(k);
}
}
}
return res;
}
public String toString()
{
return list.toString();
}
}
i % 2 == 0
.Можно явно:
for (int i=0; i<list.size(); i++) {
if (i % 2 != 0) {
res.add(list.get(i));
}
}
Или так:
for (int i=1; i<list.size(); i=i+2) {
res.add(list.get(i));
}
С помощью итератора:
int i = 0;
while (iter.hasNext()) {
int value = iter.next();
if (i % 2 != 0) {
res.add(value);
}
i++;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Здраствуйте, у меня никак не может исчезнуть одна ошибка, никак не могу найти ответ на свой вопросУ меня возникает вот такая ошибка при попытке...