Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Масиви

Featured Replies

Даден ви е масива int[] array. Създайте нов масив, с елементите от първия, но без числото 6. Пример: int[] array = {2,4,5,6,8,6,3,4,6} → array2: {2,4,5,8,3,4};

package arraynosix;

/**
 *
 * @author krasio
 */
public class ArrayNoSix 
{

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) 
    {
        int[] a = {2,4,5,6,8,6,3,4,6};
        int[] b;
        int size = a.length;
        for (int i = 0; i < a.length; i++)
        {
            if (a[i] != 6) continue;
            size--;
        }
        b = new int[size];
        int j = 0;
        for (int i = 0; i < a.length; i++)
        {
            if (a[i] == 6) continue;
            b[j] = a[i];
            j++;
        }
        for (int i = 0; i < size; i++)
        {
            System.out.print(b[i] + " ");
        }
    }
    
}

 

Привет !

Прилагам две решения - първото е наивния подход, подобен на вече предложения от @Реджеп Иведик с малко по-малко редове (но със сходна сложност).

Втория е един начин с използването на Stream API-то на Java, което се предлага в Java 1.8:

import java.util.Arrays;

public class ArraysNoSix {
	
	public static void main(String[] args) {
		
		naiveApproach(new int[] {1,6,4,5,6,7,6,8});
		naiveApproach(new int[] {1,2,3,4});
		naiveApproach(new int[] {6,6,6,6});
		naiveApproach(new int[] {});
		
		oneLine(new int[] {1,6,4,5,6,7,6,8});
		oneLine(new int[] {1,2,3,4});
		oneLine(new int[] {6,6,6,6});
		oneLine(new int[] {});
		
	}
	
	public static void naiveApproach(int[] array) {
		int currentPoss = 0;
		int[] filtered = new int[array.length];
		for (int elem: array) {
			if (elem != 6) {
				filtered[currentPoss] = elem;
				currentPoss++;
			}
		}
		int[] result = new int[currentPoss];
		System.arraycopy(filtered, 0, result, 0, currentPoss);
		System.out.println(Arrays.toString(result));
		
	}
	
	public static void oneLine(int[] array) { // Java 1.8 !!!
		int[] result = Arrays.stream(array).filter(elem -> elem != 6).toArray();
		System.out.println(Arrays.toString(result));
	}

}

Относно решението на @Реджеп Иведик, публикувано по-горе, имам само една препоръка - чисто професионално ориентирана:

Не се препоръчва използването на "continue" оператора, ако логиката може да се преправи във формат,  който го избягва - т.е. вместо 

if (a[i] != 6) continue;
   size--;

да се използва

if (a[i] != 6) size++;

и size да се инициализира с 0-ла.

Поздрави !

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.