Найти минимальное число из 2 чисел Java
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

static double min (double x, double y) {

if (x<=y) return x;

     else

           return y;

}

static int min (int x, int y) {

     if (x<=y) return x;

           else

                return y;

}

public static void main(String args[]) {

Scanner in=new Scanner(System.in);

System.out.print("Введите два числа: ");

int a,b;

a=in.nextInt();

b=in.nextInt();

System.out.println("Наименьшее из этих чисел: "+min(a,b));    

double c,d;

System.out.print("Введите два числа: ");

c=in.nextDouble();

d=in.nextDouble();

System.out.println("Наименьшее из этих чисел: "+min(c,d));

in.close();    

}

 

 


 


Параметры переменной длины

Метод может принимать параметры переменной длины одного типа. Например, нам надо передать в метод массив и вычислить сумму чисел этого массива:

public static void main(String[] args) {

 

int n1 = getSum(20,10);

System.out.println(n1); // 30

int n2 = getSum(20, 34, 9, 5);

System.out.println(n2); // 68

int n3 = getSum();

System.out.println(n3); // 0

}

static int getSum(int ...nums){

 

int result =0;

for(int x:nums)

result+=x;

return result;

}

 

Троеточие перед названием параметра int ...nums указывает на то, что он будет необязательным и будет представлять массив. Мы можем передать в метод getSum одно число, несколько чисел, а можем вообще не передавать никаких параметров. Причем, если мы хотим передать несколько параметров, то необязательный параметр должен указываться в конце:

public static void main(String[] args) {

 

int n1 = getSum("Welcome!", 20,10);

System.out.println(n1); // 30

int n3 = getSum("Hello World!");

System.out.println(n3); // 0

}

static int getSum(String message, int ...nums){

 

System.out.println(message);

int result =0;

for(int x:nums)

result+=x;

return result;

}

 



Рекурсивные функции

Рекурсивная функция может вызывать саму себя.

Например, рассмотрим функцию, определяющую факториал числа:

 

static int factorial(int x){

 

if (x == 1){

 

return 1;

}

else{

 

return x * factorial(x - 1);

}

}

Еще одним распространенным примером рекурсивной функции служит функция, вычисляющая числа Фибоначчи. В теории n-й член последовательности Фибоначчи определяется по формуле:

f(n)=f(n-1) + f(n-2), причем f(0)=0, а f(1)=1.

 

static int fibonachi(int n){

 

if (n == 0){

return 0;

}

if (n == 1){

return 1;

}

else{

return fibonachi(n - 1) + fibonachi(n - 2);

}

}

 

В программу калькулятор добавить рекурсию (ДЗ):

 

static Scanner in = new Scanner(System.in);

    

static int getInt()

{

     int num;

     System.out.print("Введите число: ");

     if (in.hasNextInt()) {

           num = in.nextInt();

     }

     else

           {

           System.out.println("Ошибка ввода!");

           in.next();

           num = getInt();

           }

return num;

}

    

static char getOperation() {

String s = null;

     char ch;

     System.out.print("Введите знак операции (+, -, *, /): ");

     s = in.next();

     if (s.equals("+") || s.equals("-") || s.equals("*") || s.equals("/")) {

           ch = s.charAt(0);

     }

     else

           {

           System.out.println("Ошибка ввода!");

           ch = getOperation();

           }

     return ch;

}

    

static int calc(int num1, int num2, char operation)

{

     int result = 0;

     switch (operation)

     {

     case '+' : result = num1 + num2; break;

     case '-' : result = num1 - num2; break;

     case '*' : result = num1 * num2; break;

     case '/' : result = num1 / num2; break;

     }

     return result;

}

    

     public static void main(String args[]) {

           int num1 = getInt();

           char ch = getOperation();

           int num2 = getInt();

           int rez = calc(num1, num2, ch);

           System.out.println("Ответ: " + rez);

}

 

      



ArrayList vs. Array

Versus — латинское слово, означающее «против». Часто сокращается до vs или v.

 

Допустим, Вы работаете программистом на компанию, которая осуществляет доставку товаров по всему миру. И Вам необходимо сохранить список городов, в которые осуществляется доставка.

Вы это можете сделать 2 способами:

1. С помощью обычного массива

2. С помощью Arraylist

 

1. С ПОМОЩЬЮ ОБЫЧНОГО МАССИВА

Создаем обычный массив с именем deliveryCities. В фигурных скобках прописываем значения элементов массива, то есть названия городов. Например:

  String [] deliveryCities = {"Chicago", "New York", "Toronto", "Paris"}

Но что, если мы хотим добавить еще один город для доставки, например, London?

String [] deliveryCities2 = new String[deliveryCities.length + 1];

for (int i = 0; i < deliveryCities.length; i++) {

deliveryCities2[i] = deliveryCities[i];

}

deliveryCities2[deliveryCities.length] = "London";

 

Это достаточно неудобно.

Или же другое решение проблемы – это создание очень большого массива, содержащего все элементы, что приводит к неэффективному использованию памяти.

 

Так что же придумали программисты?

Они написали класс ArrayList, который выполняет ту же работу, что и Array, но может изменять свой размер, добавлять, удалять, заменять элементы массива в любое время и в любом месте. Arraylist, как резиновый, его можно увеличивать или уменьшать безо всяких проблем.

Как это работает?

Когда в ArrayList нужно добавить еще один элемент и нет свободного пространства, внутри ArrayList происходит следующее:

a) создается еще один массив, вдвое больший.

б) все элементы старого массива копируются в новый массив.

c) новый массив хранится во внутренней переменной объекта ArrayList, старый массив объявляется мусором (мы просто больше не храним его ссылку).

 

Arraylist - это так называемый объектный тип, который входит в Java Core, а именно java.util.ArrayList.

Создать список можно несколькими способами. Наиболее распространенным способом является следующая структура:

Но будьте внимательные: ArrayList не умеет работать с примитивными типами. Поэтому если Вы хотите сохранять примитивные типы, Вам нужно использовать классы-оболочки для соответствующих типов. Для типа int класс-оболочка Integer, для типа double – Double и т.д.

 

 

Примеры использования методов:

 

ArrayList <String> deliveryCities = new ArrayList<>();

 

deliveryCities.add(“Chicago”);

deliveryCities.add(“New York”);

deliveryCities.add(“Toronto”);

deliveryCities.add(“Paris”);

deliveryCities.add(1, "Mariupol");//на первую позицию

Все элементы, которые находятся после нового индекса, автоматически сдвинутся.

 

deliveryCities.add(0, "Paris");//в начало списка

deliveryCities.get(2);// Chicago

deliveryCities.indexOf("New York")); // 3

deliveryCities.indexOf("Amsterdam")); // -1, т.к. его нет в списке

 

Таким образом с помощью метода indexOf можно узнать, есть ли такой элемент в списке. Кроме этого, для этих целей существует отдельный метод contains(Object o), который:

¾ возвращает true, если элемент хотя бы один раз встречается в списке;

¾ возвращает false, если такого элемента нет.

Обратите внимание, что в ArrayList элементы могут повторяться (скажем, могут быть 2 города «New York»), и если вам нужно узнать не просто, есть ли такой элемент, а конкретное число вхождений, то вам придется пробегать весь массив и сравнивать каждый элемент с искомым, либо же воспользоваться сторонними классами.

deliveryCities.set(2, "Berlin");//заменяем Chicago на Berlin

deliveryCities.remove(1); // удалит Mariupol

deliveryCities.remove("Mariupol");

если таких элементов несколько, то метод удалит только первый из них. Для удаления всех элементов сначала нужно опять же использовать цикл. Если же нам нужно удалить все элементы списка, мы можем использовать метод clear().

 

ПОДЫТОЖИМ

Когда же использовать обычные массивы, а когда ArrayList?

Массивы используются, когда:

¾ заранее известно точное количество элементов

¾ не будут добавляться/удаляться элементы

ArrayList используют во всех остальных случаях.

Мы рассмотрели самые распространенные методы. Если же Вас интересуют все методы ArrayList, – изучите официальную страничку документации от Oracle: https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

 

Task.

1. Create a list of strings.

2. Add 5 different strings to the list.

3. Display to the screen its size.

4. Display to the screen contents of the list. Each value should be on a new line. Use a loop.

 

import java.util.ArrayList;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class Solution

{

public static void main(String[] args) throws Exception

{

   ArrayList<String> list = new ArrayList<String>();

   BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));

   for (int i = 0; i < 5; i++)

   {

       list.add(buf.readLine());

     }

   System.out.println("Size of list is "+ list.size());

   for (int i = 0; i < list.size(); i++)

    System.out.println(list.get(i));

 

}

}

 

Task.

1. Create a list of strings.

2. Add 5 strings to the list. «101», «102», «103», «104», «105».

3. Delete the first one, the middle one and the last one.

4. Display to the screen contents of the list. Each value should be on a new line. Use a loop.

5. Display to the screen its size. (After deleting one entry, the indexes of other entries change. For instance, if we delete first element, the second becomes the first one).

 

import java.util.ArrayList;

public class Solution

{

public static void main(String[] args) throws Exception

{

ArrayList<String> list = new ArrayList<String>();

     

for (int i = 101; i<=105; i++)

   list.add(String.valueOf(i));

       

list.remove(0);

list.remove(list.size()-1);

list.remove(list.size()/2);

     

for (int i =0; i< list.size(); i++)

System.out.println(list.get(i));

     

System.out.println(list.size());

}

}

 

Task.

1. Create a list of strings.

2. Read 5 strings from keyboard, then add them to the list.

3. Arrange them in reverse order.

4. Display to the screen contents of the list. Each value should be on a new line. Use a loop.

 

import java.util.ArrayList;

import java.io.BufferedReader;

import java.io.InputStreamReader;

 

public class Solution

{

public static void main(String[] args) throws Exception

{

   ArrayList<String> list = new ArrayList<String>();

   BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));

   for (int i = 0; i < 5; i++)

   {

          list.add(buf.readLine());//добавляет в конец списка

   }

       

   for (int i = 0; i < list.size()/2; i++)

   {

       String temp = list.get(i);

       list.set(i, list.get(list.size()-1-i));//set() – это замена одного эл-та на другой

       list.set(list.size()-1-i, temp);

   }

   for (int i = 0; i < list.size(); i++)

   {

       System.out.println(list.get(i));

   }

}

Task.

1. Create a list of strings.

2. Read from keyboard 5 strings. Add these strings to the list.

3. Delete the last string and add it to the beginning of the list. Repeat this action 13 times.

4. Display to the screen contents of the list. Each value should be on a new line. Use a loop.

 

import java.util.ArrayList;

import java.io.BufferedReader;

import java.io.InputStreamReader;

 

public class Solution

{

public static void main(String[] args) throws Exception

{

   ArrayList<String> list = new ArrayList<String>();

   BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));

   for (int i = 0; i < 5; i++)

   {

       list.add(buf.readLine());//добавляет в конец списка

   }

       

   for (int i=0; i<13; i++)

   {

   String temp = list.get(list.size()-1);

   list.add(0,temp);

   list.remove(list.size()-1);

   }

   for (int i = 0; i < list.size(); i++)

   {

       System.out.println(list.get(i));

   }

}

}

 

Task

1. Create a list of strings.

2. Read from the keyboard 5 strings. Add these strings to the beginning of the list, not to the end.

3. Display to the screen contents of the list. Each value should be on a new line. Use a loop.

 

import java.util.*;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class Solution

{

public static void main(String[] args) throws Exception

{

   ArrayList<String> list = new ArrayList<String>();

    BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));

       for (int i = 0; i < 5; i++)

       {

       String s = buf.readLine();

           list.add(0,s);

       }

   for (int i = 0; i < list.size(); i++)

   {

       System.out.println(list.get(i));

   }

}

}

 

 


Task.

1. Create a list of strings.

2. Add 5 different strings to the list.

3. Display to the screen its size.

4. Display to the screen contents of the list. Each value should be on a new line. Use a loop.

 

Task.

1. Create a list of strings.

2. Add 5 strings to the list. «101», «102», «103», «104», «105».

3. Delete the first one, the middle one and the last one.

4. Display to the screen contents of the list. Each value should be on a new line. Use a loop.

5. Display to the screen its size. (After deleting one entry, the indexes of other entries change. For instance, if we delete first element, the second becomes the first one).

 

Task.

1. Create a list of strings.

2. Read 5 strings from keyboard, then add them to the list.

3. Arrange them in reverse order.

4. Display to the screen contents of the list. Each value should be on a new line. Use a loop.

 

Task

1. Create a list of strings.

2. Read from the keyboard 5 strings. Add these strings to the beginning of the list, not to the end.

3. Display to the screen contents of the list. Each value should be on a new line. Use a loop.


СР по ArrayList

Дата: 2018-11-18, просмотров: 552.