SlideShare a Scribd company logo
Java Foundations
Lists, List<T>,
ArrayList<T>
Your Course
Instructors
Svetlin Nakov
George Georgiev
The Judge System
Sending your Solutions
for Automated Evaluation
Testing Your Code in the Judge System
 Test your code online in the SoftUni Judge system:
https://judge.softuni.org/Contests/3294
Lists in Java
Processing Variable Length
Sequences of Elements
Table of Contents
1. Lists: Overview
2. List Manipulating: Add, Delete, Insert, Clear
3. Reading Lists from the Console. Printing Lists
4. Sorting Lists and Arrays
7
Lists in Java
8
List<E> – Overview
 List<E> holds a list of elements of any type
9
List<String> names = new ArrayList<>();
// Create a list of strings
names.add("Peter");
names.add("Maria");
names.add("George");
names.remove("Maria");
for (String name : names)
System.out.println(name);
// Peter, George
List<E> – Overview (2)
10
List<Integer> nums = new ArrayList<>(
Arrays.asList(10, 20, 30, 40, 50, 60));
nums.remove(2);
nums.remove(Integer.valueOf(40));
nums.add(100);
nums.add(0, -100);
for (int i = 0; i < nums.size(); i++)
System.out.print(nums.get(i) + " ");
-100 10 20 50 60 100
Inserts an element to index
Items count
Remove by index
Remove by value (slow)
 List<E> holds a list of elements (like array, but extendable)
 Provides operations to add / insert / remove / find elements:
 size() – number of elements in the List<E>
 add(element) – adds an element to the List<E>
 add(index, element) – inserts an element to given position
 remove(element) – removes an element (returns true / false)
 remove(index) – removes element at index
 contains(element) – determines whether an element is in the list
 set(index, item) – replaces the element at the given index
List<E> – Data Structure
11
add – Appends an Element
12
10
5
2
0
Count: 1
2
3
List<Integer>
10
5
2
10
remove – Deletes an Element
13
2
5
Count:
List<Integer>
10
2
3
10
add (index, el) – Inserts an Element at Position
14
3
2
2
5
Count:
List<Integer>
-5
-5
Reading Lists from the Console
Using for Loop or String.split()
15
 First, read from the console the array length:
 Next, create a list of given size n and read its elements:
Reading Lists From the Console
Scanner sc = new Scanner(System.in);
int n = Integer.parseInt(sc.nextLine());
List<Integer> list = new ArrayList<>();
for (int i = 0; i < n; i++) {
int number = Integer.parseInt(sc.nextLine());
list.add(number);
}
 Lists can be read from a single line of space separated values:
Reading List Values from a Single Line
17
2 8 30 25 40 72 -2 44 56
String values = sc.nextLine();
List<String> items = Arrays.stream(values.split(" "))
.collect(Collectors.toList());
List<Integer> nums = new ArrayList<>();
for (int i = 0; i < items.size(); i++)
nums.add(Integer.parseInt(items.get(i)));
Convert a collection
into List
List<Integer> items = Arrays.stream(values.split(" "))
.map(Integer::parseInt).collect(Collectors.toList());
 Printing a list using a for-loop:
 Printing a list using a String.join():
Printing Lists on the Console
18
List<String> list = new ArrayList<>(Arrays.asList(
"one", "two", "three", "four", "five", "six"));
for (int index = 0; index < list.size(); index++)
System.out.printf
("arr[%d] = %s%n", index, list.get(index));
List<String> list = new ArrayList<>(Arrays.asList(
"one", "two", "three", "four", "five", "six"));
System.out.println(String.join("; ", list));
Gets an element
at given index
 Write a program to sum all adjacent equal numbers in a list of
decimal numbers, starting from left to right
 Examples:
Problem: Sum Adjacent Equal Numbers
19
3 3 6 1 12 1
8 2 2 4 8 16 16 8 16
5 4 2 1 1 4 5 8 4
Scanner sc = new Scanner(System.in);
List<Double> numbers = Arrays.stream(sc.nextLine().split(" "))
.map(Double::parseDouble).collect(Collectors.toList());
for (int i = 0; i < numbers.size() - 1; i++)
if (numbers.get(i).equals(numbers.get(i + 1))) {
numbers.set(i, numbers.get(i) + numbers.get(i + 1));
numbers.remove(i + 1);
i = -1;
}
// Continues on the next slide
Solution: Sum Adjacent Equal Numbers (1)
0
Solution: Sum Adjacent Equal Numbers (2)
21
static String joinElementsByDelimiter
(List<Double> items, String delimiter) {
String output = "";
for (Double item : items)
output += (new DecimalFormat("0.#").format(item) + delimiter);
return output;
}
String output = joinElementsByDelimiter(numbers, " ");
System.out.println(output);
 Write a program that sums all numbers in a list in the
following order:
 first + last, first + 1 + last - 1, first + 2 + last - 2, … first + n, last – n
 Examples:
Problem: Gauss' Trick
22
1 2 3 4 5 6 6 3
1 2 3 4 5 5
Solution: Gauss' Trick
3
Scanner sc = new Scanner(System.in);
List<Integer> numbers = Arrays.stream(sc.nextLine().split(" "))
.map(Integer::parseInt).collect(Collectors.toList());
int size = numbers.size();
for (int i = 0; i < size / 2; i++) {
numbers.set(i, numbers.get(i) + numbers.get(numbers.size() - 1));
numbers.remove(numbers.size() - 1);
}
System.out.println(numbers.toString().replaceAll("[[],]", ""));
 You receive two lists with numbers. Print a result list which
contains the numbers from both lists
 If the length of the two lists is not equal, just add the
remaining elements at the end of the list
 list1[0], list2[0], list1[1], list2[1], …
Problem: Merging Lists
24
1 2 3 4 5
6 7 8
1 6 2 7 3 8 4 5
// TODO: Read the input
List<Integer> resultNums = new ArrayList<>();
for (int i = 0; i < Math.min(nums1.size(), nums2.size()); i++) {
// TODO: Add numbers in resultNums
}
if (nums1.size() > nums2.size())
resNums.addAll(getRemainingElements(nums1, nums2));
else if (nums2.size() > nums1.size())
resNums.addAll(getRemainingElements(nums2, nums1));
System.out.println(resNums.toString().replaceAll("[[],]", ""));
Solution: Merging Lists (1)
25
public static List<Integer> getRemainingElements
(List<Integer> longerList, List<Integer> shorterList) {
List<Integer> nums = new ArrayList<>();
for (int i = shorterList.size(); i < longerList.size(); i++)
nums.add(longerList.get(i));
return nums;
}
Solution: Merging Lists (2)
26
Live Exercises
Reading and Manipulating Lists
Sorting Lists and Arrays
28
 Sorting a list == reorder its elements incrementally: Sort()
 List items should be comparable, e.g. numbers, strings, dates, …
Sorting Lists
List<String> names = new ArrayList<>(Arrays.asList(
"Peter", "Michael", "George", "Victor", "John"));
Collections.sort(names);
System.out.println(String.join(", ", names));
// George, John, Michael, Peter, Victor
Collections.sort(names);
Collections.reverse(names);
System.out.println(String.join(", ", names));
// Victor, Peter, Michael, John, George
Sort in natural
(ascending) order
Reverse the sorted result
 Read a number n and n lines of products. Print a numbered list
of all the products ordered by name
 Examples:
Problem: List of Products
30
4
Potatoes
Tomatoes
Onions
Apples
1.Apples
2.Onions
3.Potatoes
4.Tomatoes
A
Z
int n = Integer.parseInt(sc.nextLine());
List<String> products = new ArrayList<>();
for (int i = 0; i < n; i++) {
String currentProduct = sc.nextLine();
products.add(currentProduct);
}
Collections.sort(products);
for (int i = 0; i < products.size(); i++)
System.out.printf("%d.%s%n", i + 1, products.get(i));
Solution: List of Products
 Read a list of integers, remove all negative numbers from it
 Print the remaining elements in reversed order
 In case of no elements left in the list, print "empty"
Problem: Remove Negatives and Reverse
32
10 -5 7 9 -33 50 50 9 7 10
7 -2 -10 1 1 7
-1 -2 -3 empty
List<Integer> nums = Arrays.stream(sc.nextLine().split(" "))
.map(Integer::parseInt).collect(Collectors.toList());
for (int i = 0; i < nums.size(); i++)
if (nums.get(i) < 0)
nums.remove(i--);
Collections.reverse(nums);
if (nums.size() == 0)
System.out.println("empty");
else
System.out.println(nums.toString().replaceAll("[[],]", ""));
Solution: Remove Negatives and Reverse
Live Exercises
Sorting Lists
 …
 …
 …
Summary
35
 Lists hold a sequence of elements
(variable-length)
 Can add / remove / insert elements
at runtime
 Creating (allocating) a list:
new ArrayList<E>()
 Accessing list elements by index
 Printing list elements: String.join(…)
 …
 …
 …
Next Steps
 Join the SoftUni "Learn To Code" Community
 Access the Free Coding Lessons
 Get Help from the Mentors
 Meet the Other Learners
https://softuni.org

More Related Content

What's hot

Java Foundations: Methods
Java Foundations: MethodsJava Foundations: Methods
Java Foundations: Methods
Svetlin Nakov
 
20.2 Java inheritance
20.2 Java inheritance20.2 Java inheritance
20.2 Java inheritance
Intro C# Book
 
20.3 Java encapsulation
20.3 Java encapsulation20.3 Java encapsulation
20.3 Java encapsulation
Intro C# Book
 
Exception Handling
Exception HandlingException Handling
Exception Handling
Sunil OS
 
09. Java Methods
09. Java Methods09. Java Methods
09. Java Methods
Intro C# Book
 
20.4 Java interfaces and abstraction
20.4 Java interfaces and abstraction20.4 Java interfaces and abstraction
20.4 Java interfaces and abstraction
Intro C# Book
 
Java Threads and Concurrency
Java Threads and ConcurrencyJava Threads and Concurrency
Java Threads and Concurrency
Sunil OS
 
Web develop in flask
Web develop in flaskWeb develop in flask
Web develop in flask
Jim Yeh
 
JavaScript
JavaScriptJavaScript
JavaScript
Sunil OS
 
Java basic tutorial by sanjeevini india
Java basic tutorial by sanjeevini indiaJava basic tutorial by sanjeevini india
Java basic tutorial by sanjeevini indiaSanjeev Tripathi
 
Java 8 - CJ
Java 8 - CJJava 8 - CJ
Java 8 - CJ
Sunil OS
 
Major Java 8 features
Major Java 8 featuresMajor Java 8 features
Major Java 8 features
Sanjoy Kumar Roy
 
Java generics
Java genericsJava generics
Java generics
Hosein Zare
 
Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionJava Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and Collection
IMC Institute
 
Java Foundations: Objects and Classes
Java Foundations: Objects and ClassesJava Foundations: Objects and Classes
Java Foundations: Objects and Classes
Svetlin Nakov
 
Java Input Output and File Handling
Java Input Output and File HandlingJava Input Output and File Handling
Java Input Output and File Handling
Sunil OS
 
20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental Principles20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental Principles
Intro C# Book
 
17. Java data structures trees representation and traversal
17. Java data structures trees representation and traversal17. Java data structures trees representation and traversal
17. Java data structures trees representation and traversal
Intro C# Book
 
Control flow statements in java
Control flow statements in javaControl flow statements in java
Control flow statements in java
yugandhar vadlamudi
 

What's hot (20)

Java Foundations: Methods
Java Foundations: MethodsJava Foundations: Methods
Java Foundations: Methods
 
20.2 Java inheritance
20.2 Java inheritance20.2 Java inheritance
20.2 Java inheritance
 
20.3 Java encapsulation
20.3 Java encapsulation20.3 Java encapsulation
20.3 Java encapsulation
 
Exception Handling
Exception HandlingException Handling
Exception Handling
 
09. Java Methods
09. Java Methods09. Java Methods
09. Java Methods
 
20.4 Java interfaces and abstraction
20.4 Java interfaces and abstraction20.4 Java interfaces and abstraction
20.4 Java interfaces and abstraction
 
Java Threads and Concurrency
Java Threads and ConcurrencyJava Threads and Concurrency
Java Threads and Concurrency
 
Web develop in flask
Web develop in flaskWeb develop in flask
Web develop in flask
 
Java Arrays
Java ArraysJava Arrays
Java Arrays
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Java basic tutorial by sanjeevini india
Java basic tutorial by sanjeevini indiaJava basic tutorial by sanjeevini india
Java basic tutorial by sanjeevini india
 
Java 8 - CJ
Java 8 - CJJava 8 - CJ
Java 8 - CJ
 
Major Java 8 features
Major Java 8 featuresMajor Java 8 features
Major Java 8 features
 
Java generics
Java genericsJava generics
Java generics
 
Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionJava Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and Collection
 
Java Foundations: Objects and Classes
Java Foundations: Objects and ClassesJava Foundations: Objects and Classes
Java Foundations: Objects and Classes
 
Java Input Output and File Handling
Java Input Output and File HandlingJava Input Output and File Handling
Java Input Output and File Handling
 
20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental Principles20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental Principles
 
17. Java data structures trees representation and traversal
17. Java data structures trees representation and traversal17. Java data structures trees representation and traversal
17. Java data structures trees representation and traversal
 
Control flow statements in java
Control flow statements in javaControl flow statements in java
Control flow statements in java
 

Similar to Java Foundations: Lists, ArrayList<T>

Labprogram.javaLinkedList.javaimport java.util.NoSuchElementEx.pdf
Labprogram.javaLinkedList.javaimport java.util.NoSuchElementEx.pdfLabprogram.javaLinkedList.javaimport java.util.NoSuchElementEx.pdf
Labprogram.javaLinkedList.javaimport java.util.NoSuchElementEx.pdf
freddysarabia1
 
beginners_python_cheat_sheet_pcc_all (3).pptx
beginners_python_cheat_sheet_pcc_all (3).pptxbeginners_python_cheat_sheet_pcc_all (3).pptx
beginners_python_cheat_sheet_pcc_all (3).pptx
HongAnhNguyn285885
 
16. Arrays Lists Stacks Queues
16. Arrays Lists Stacks Queues16. Arrays Lists Stacks Queues
16. Arrays Lists Stacks Queues
Intro C# Book
 
Refer to my progress on this assignment belowIn this problem you w.pdf
Refer to my progress on this assignment belowIn this problem you w.pdfRefer to my progress on this assignment belowIn this problem you w.pdf
Refer to my progress on this assignment belowIn this problem you w.pdf
arishmarketing21
 
import java.util.LinkedList; import java.util.Random; import jav.pdf
import java.util.LinkedList; import java.util.Random; import jav.pdfimport java.util.LinkedList; import java.util.Random; import jav.pdf
import java.util.LinkedList; import java.util.Random; import jav.pdf
aquastore223
 
Java 8 Lambda Expressions
Java 8 Lambda ExpressionsJava 8 Lambda Expressions
Java 8 Lambda Expressions
Scott Leberknight
 
import java-util-ArrayList- import java-util-Collections- import java-.pdf
import java-util-ArrayList- import java-util-Collections- import java-.pdfimport java-util-ArrayList- import java-util-Collections- import java-.pdf
import java-util-ArrayList- import java-util-Collections- import java-.pdf
adhityalapcare
 
Python list
Python listPython list
Python list
Mohammed Sikander
 
Basic data-structures-v.1.1
Basic data-structures-v.1.1Basic data-structures-v.1.1
Basic data-structures-v.1.1
BG Java EE Course
 
Beginner's Python Cheat Sheet.pdf
Beginner's Python Cheat Sheet.pdfBeginner's Python Cheat Sheet.pdf
Beginner's Python Cheat Sheet.pdf
AkhileshKumar436707
 
GE3151_PSPP_UNIT_4_Notes
GE3151_PSPP_UNIT_4_NotesGE3151_PSPP_UNIT_4_Notes
GE3151_PSPP_UNIT_4_Notes
Asst.prof M.Gokilavani
 
07. Java Array, Set and Maps
07.  Java Array, Set and Maps07.  Java Array, Set and Maps
07. Java Array, Set and Maps
Intro C# Book
 
Java Generics
Java GenericsJava Generics
Java Generics
Zülfikar Karakaya
 
Module-2.pptx
Module-2.pptxModule-2.pptx
Module-2.pptx
GaganRaj28
 
Python Programming: Lists, Modules, Exceptions
Python Programming: Lists, Modules, ExceptionsPython Programming: Lists, Modules, Exceptions
Python Programming: Lists, Modules, Exceptions
Sreedhar Chowdam
 
Chapter 7.1
Chapter 7.1Chapter 7.1
Chapter 7.1sotlsoc
 
Write a method called uniqueNumbers that takes an int array as param.pdf
Write a method called uniqueNumbers that takes an int array as param.pdfWrite a method called uniqueNumbers that takes an int array as param.pdf
Write a method called uniqueNumbers that takes an int array as param.pdf
fashioncollection2
 
ch07-arrays.ppt
ch07-arrays.pptch07-arrays.ppt
ch07-arrays.ppt
Mahyuddin8
 
The Ring programming language version 1.10 book - Part 45 of 212
The Ring programming language version 1.10 book - Part 45 of 212The Ring programming language version 1.10 book - Part 45 of 212
The Ring programming language version 1.10 book - Part 45 of 212
Mahmoud Samir Fayed
 
Python programming workshop session 3
Python programming workshop session 3Python programming workshop session 3
Python programming workshop session 3
Abdul Haseeb
 

Similar to Java Foundations: Lists, ArrayList<T> (20)

Labprogram.javaLinkedList.javaimport java.util.NoSuchElementEx.pdf
Labprogram.javaLinkedList.javaimport java.util.NoSuchElementEx.pdfLabprogram.javaLinkedList.javaimport java.util.NoSuchElementEx.pdf
Labprogram.javaLinkedList.javaimport java.util.NoSuchElementEx.pdf
 
beginners_python_cheat_sheet_pcc_all (3).pptx
beginners_python_cheat_sheet_pcc_all (3).pptxbeginners_python_cheat_sheet_pcc_all (3).pptx
beginners_python_cheat_sheet_pcc_all (3).pptx
 
16. Arrays Lists Stacks Queues
16. Arrays Lists Stacks Queues16. Arrays Lists Stacks Queues
16. Arrays Lists Stacks Queues
 
Refer to my progress on this assignment belowIn this problem you w.pdf
Refer to my progress on this assignment belowIn this problem you w.pdfRefer to my progress on this assignment belowIn this problem you w.pdf
Refer to my progress on this assignment belowIn this problem you w.pdf
 
import java.util.LinkedList; import java.util.Random; import jav.pdf
import java.util.LinkedList; import java.util.Random; import jav.pdfimport java.util.LinkedList; import java.util.Random; import jav.pdf
import java.util.LinkedList; import java.util.Random; import jav.pdf
 
Java 8 Lambda Expressions
Java 8 Lambda ExpressionsJava 8 Lambda Expressions
Java 8 Lambda Expressions
 
import java-util-ArrayList- import java-util-Collections- import java-.pdf
import java-util-ArrayList- import java-util-Collections- import java-.pdfimport java-util-ArrayList- import java-util-Collections- import java-.pdf
import java-util-ArrayList- import java-util-Collections- import java-.pdf
 
Python list
Python listPython list
Python list
 
Basic data-structures-v.1.1
Basic data-structures-v.1.1Basic data-structures-v.1.1
Basic data-structures-v.1.1
 
Beginner's Python Cheat Sheet.pdf
Beginner's Python Cheat Sheet.pdfBeginner's Python Cheat Sheet.pdf
Beginner's Python Cheat Sheet.pdf
 
GE3151_PSPP_UNIT_4_Notes
GE3151_PSPP_UNIT_4_NotesGE3151_PSPP_UNIT_4_Notes
GE3151_PSPP_UNIT_4_Notes
 
07. Java Array, Set and Maps
07.  Java Array, Set and Maps07.  Java Array, Set and Maps
07. Java Array, Set and Maps
 
Java Generics
Java GenericsJava Generics
Java Generics
 
Module-2.pptx
Module-2.pptxModule-2.pptx
Module-2.pptx
 
Python Programming: Lists, Modules, Exceptions
Python Programming: Lists, Modules, ExceptionsPython Programming: Lists, Modules, Exceptions
Python Programming: Lists, Modules, Exceptions
 
Chapter 7.1
Chapter 7.1Chapter 7.1
Chapter 7.1
 
Write a method called uniqueNumbers that takes an int array as param.pdf
Write a method called uniqueNumbers that takes an int array as param.pdfWrite a method called uniqueNumbers that takes an int array as param.pdf
Write a method called uniqueNumbers that takes an int array as param.pdf
 
ch07-arrays.ppt
ch07-arrays.pptch07-arrays.ppt
ch07-arrays.ppt
 
The Ring programming language version 1.10 book - Part 45 of 212
The Ring programming language version 1.10 book - Part 45 of 212The Ring programming language version 1.10 book - Part 45 of 212
The Ring programming language version 1.10 book - Part 45 of 212
 
Python programming workshop session 3
Python programming workshop session 3Python programming workshop session 3
Python programming workshop session 3
 

More from Svetlin Nakov

Най-търсените направления в ИТ сферата за 2024
Най-търсените направления в ИТ сферата за 2024Най-търсените направления в ИТ сферата за 2024
Най-търсените направления в ИТ сферата за 2024
Svetlin Nakov
 
BG-IT-Edu: отворено учебно съдържание за ИТ учители
BG-IT-Edu: отворено учебно съдържание за ИТ учителиBG-IT-Edu: отворено учебно съдържание за ИТ учители
BG-IT-Edu: отворено учебно съдържание за ИТ учители
Svetlin Nakov
 
Programming World in 2024
Programming World in 2024Programming World in 2024
Programming World in 2024
Svetlin Nakov
 
AI Tools for Business and Startups
AI Tools for Business and StartupsAI Tools for Business and Startups
AI Tools for Business and Startups
Svetlin Nakov
 
AI Tools for Scientists - Nakov (Oct 2023)
AI Tools for Scientists - Nakov (Oct 2023)AI Tools for Scientists - Nakov (Oct 2023)
AI Tools for Scientists - Nakov (Oct 2023)
Svetlin Nakov
 
AI Tools for Entrepreneurs
AI Tools for EntrepreneursAI Tools for Entrepreneurs
AI Tools for Entrepreneurs
Svetlin Nakov
 
Bulgarian Tech Industry - Nakov at Dev.BG All in One Conference 2023
Bulgarian Tech Industry - Nakov at Dev.BG All in One Conference 2023Bulgarian Tech Industry - Nakov at Dev.BG All in One Conference 2023
Bulgarian Tech Industry - Nakov at Dev.BG All in One Conference 2023
Svetlin Nakov
 
AI Tools for Business and Personal Life
AI Tools for Business and Personal LifeAI Tools for Business and Personal Life
AI Tools for Business and Personal Life
Svetlin Nakov
 
Дипломна работа: учебно съдържание по ООП - Светлин Наков
Дипломна работа: учебно съдържание по ООП - Светлин НаковДипломна работа: учебно съдържание по ООП - Светлин Наков
Дипломна работа: учебно съдържание по ООП - Светлин Наков
Svetlin Nakov
 
Дипломна работа: учебно съдържание по ООП
Дипломна работа: учебно съдържание по ООПДипломна работа: учебно съдържание по ООП
Дипломна работа: учебно съдържание по ООП
Svetlin Nakov
 
Свободно ИТ учебно съдържание за учители по програмиране и ИТ
Свободно ИТ учебно съдържание за учители по програмиране и ИТСвободно ИТ учебно съдържание за учители по програмиране и ИТ
Свободно ИТ учебно съдържание за учители по програмиране и ИТ
Svetlin Nakov
 
AI and the Professions of the Future
AI and the Professions of the FutureAI and the Professions of the Future
AI and the Professions of the Future
Svetlin Nakov
 
Programming Languages Trends for 2023
Programming Languages Trends for 2023Programming Languages Trends for 2023
Programming Languages Trends for 2023
Svetlin Nakov
 
IT Professions and How to Become a Developer
IT Professions and How to Become a DeveloperIT Professions and How to Become a Developer
IT Professions and How to Become a Developer
Svetlin Nakov
 
GitHub Actions (Nakov at RuseConf, Sept 2022)
GitHub Actions (Nakov at RuseConf, Sept 2022)GitHub Actions (Nakov at RuseConf, Sept 2022)
GitHub Actions (Nakov at RuseConf, Sept 2022)
Svetlin Nakov
 
IT Professions and Their Future
IT Professions and Their FutureIT Professions and Their Future
IT Professions and Their Future
Svetlin Nakov
 
How to Become a QA Engineer and Start a Job
How to Become a QA Engineer and Start a JobHow to Become a QA Engineer and Start a Job
How to Become a QA Engineer and Start a Job
Svetlin Nakov
 
Призвание и цели: моята рецепта
Призвание и цели: моята рецептаПризвание и цели: моята рецепта
Призвание и цели: моята рецепта
Svetlin Nakov
 
What Mongolian IT Industry Can Learn from Bulgaria?
What Mongolian IT Industry Can Learn from Bulgaria?What Mongolian IT Industry Can Learn from Bulgaria?
What Mongolian IT Industry Can Learn from Bulgaria?
Svetlin Nakov
 
How to Become a Software Developer - Nakov in Mongolia (Oct 2022)
How to Become a Software Developer - Nakov in Mongolia (Oct 2022)How to Become a Software Developer - Nakov in Mongolia (Oct 2022)
How to Become a Software Developer - Nakov in Mongolia (Oct 2022)
Svetlin Nakov
 

More from Svetlin Nakov (20)

Най-търсените направления в ИТ сферата за 2024
Най-търсените направления в ИТ сферата за 2024Най-търсените направления в ИТ сферата за 2024
Най-търсените направления в ИТ сферата за 2024
 
BG-IT-Edu: отворено учебно съдържание за ИТ учители
BG-IT-Edu: отворено учебно съдържание за ИТ учителиBG-IT-Edu: отворено учебно съдържание за ИТ учители
BG-IT-Edu: отворено учебно съдържание за ИТ учители
 
Programming World in 2024
Programming World in 2024Programming World in 2024
Programming World in 2024
 
AI Tools for Business and Startups
AI Tools for Business and StartupsAI Tools for Business and Startups
AI Tools for Business and Startups
 
AI Tools for Scientists - Nakov (Oct 2023)
AI Tools for Scientists - Nakov (Oct 2023)AI Tools for Scientists - Nakov (Oct 2023)
AI Tools for Scientists - Nakov (Oct 2023)
 
AI Tools for Entrepreneurs
AI Tools for EntrepreneursAI Tools for Entrepreneurs
AI Tools for Entrepreneurs
 
Bulgarian Tech Industry - Nakov at Dev.BG All in One Conference 2023
Bulgarian Tech Industry - Nakov at Dev.BG All in One Conference 2023Bulgarian Tech Industry - Nakov at Dev.BG All in One Conference 2023
Bulgarian Tech Industry - Nakov at Dev.BG All in One Conference 2023
 
AI Tools for Business and Personal Life
AI Tools for Business and Personal LifeAI Tools for Business and Personal Life
AI Tools for Business and Personal Life
 
Дипломна работа: учебно съдържание по ООП - Светлин Наков
Дипломна работа: учебно съдържание по ООП - Светлин НаковДипломна работа: учебно съдържание по ООП - Светлин Наков
Дипломна работа: учебно съдържание по ООП - Светлин Наков
 
Дипломна работа: учебно съдържание по ООП
Дипломна работа: учебно съдържание по ООПДипломна работа: учебно съдържание по ООП
Дипломна работа: учебно съдържание по ООП
 
Свободно ИТ учебно съдържание за учители по програмиране и ИТ
Свободно ИТ учебно съдържание за учители по програмиране и ИТСвободно ИТ учебно съдържание за учители по програмиране и ИТ
Свободно ИТ учебно съдържание за учители по програмиране и ИТ
 
AI and the Professions of the Future
AI and the Professions of the FutureAI and the Professions of the Future
AI and the Professions of the Future
 
Programming Languages Trends for 2023
Programming Languages Trends for 2023Programming Languages Trends for 2023
Programming Languages Trends for 2023
 
IT Professions and How to Become a Developer
IT Professions and How to Become a DeveloperIT Professions and How to Become a Developer
IT Professions and How to Become a Developer
 
GitHub Actions (Nakov at RuseConf, Sept 2022)
GitHub Actions (Nakov at RuseConf, Sept 2022)GitHub Actions (Nakov at RuseConf, Sept 2022)
GitHub Actions (Nakov at RuseConf, Sept 2022)
 
IT Professions and Their Future
IT Professions and Their FutureIT Professions and Their Future
IT Professions and Their Future
 
How to Become a QA Engineer and Start a Job
How to Become a QA Engineer and Start a JobHow to Become a QA Engineer and Start a Job
How to Become a QA Engineer and Start a Job
 
Призвание и цели: моята рецепта
Призвание и цели: моята рецептаПризвание и цели: моята рецепта
Призвание и цели: моята рецепта
 
What Mongolian IT Industry Can Learn from Bulgaria?
What Mongolian IT Industry Can Learn from Bulgaria?What Mongolian IT Industry Can Learn from Bulgaria?
What Mongolian IT Industry Can Learn from Bulgaria?
 
How to Become a Software Developer - Nakov in Mongolia (Oct 2022)
How to Become a Software Developer - Nakov in Mongolia (Oct 2022)How to Become a Software Developer - Nakov in Mongolia (Oct 2022)
How to Become a Software Developer - Nakov in Mongolia (Oct 2022)
 

Recently uploaded

Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 

Recently uploaded (20)

Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 

Java Foundations: Lists, ArrayList<T>

  • 3. The Judge System Sending your Solutions for Automated Evaluation
  • 4. Testing Your Code in the Judge System  Test your code online in the SoftUni Judge system: https://judge.softuni.org/Contests/3294
  • 5. Lists in Java Processing Variable Length Sequences of Elements
  • 6. Table of Contents 1. Lists: Overview 2. List Manipulating: Add, Delete, Insert, Clear 3. Reading Lists from the Console. Printing Lists 4. Sorting Lists and Arrays 7
  • 8. List<E> – Overview  List<E> holds a list of elements of any type 9 List<String> names = new ArrayList<>(); // Create a list of strings names.add("Peter"); names.add("Maria"); names.add("George"); names.remove("Maria"); for (String name : names) System.out.println(name); // Peter, George
  • 9. List<E> – Overview (2) 10 List<Integer> nums = new ArrayList<>( Arrays.asList(10, 20, 30, 40, 50, 60)); nums.remove(2); nums.remove(Integer.valueOf(40)); nums.add(100); nums.add(0, -100); for (int i = 0; i < nums.size(); i++) System.out.print(nums.get(i) + " "); -100 10 20 50 60 100 Inserts an element to index Items count Remove by index Remove by value (slow)
  • 10.  List<E> holds a list of elements (like array, but extendable)  Provides operations to add / insert / remove / find elements:  size() – number of elements in the List<E>  add(element) – adds an element to the List<E>  add(index, element) – inserts an element to given position  remove(element) – removes an element (returns true / false)  remove(index) – removes element at index  contains(element) – determines whether an element is in the list  set(index, item) – replaces the element at the given index List<E> – Data Structure 11
  • 11. add – Appends an Element 12 10 5 2 0 Count: 1 2 3 List<Integer> 10 5 2
  • 12. 10 remove – Deletes an Element 13 2 5 Count: List<Integer> 10 2 3 10
  • 13. add (index, el) – Inserts an Element at Position 14 3 2 2 5 Count: List<Integer> -5 -5
  • 14. Reading Lists from the Console Using for Loop or String.split() 15
  • 15.  First, read from the console the array length:  Next, create a list of given size n and read its elements: Reading Lists From the Console Scanner sc = new Scanner(System.in); int n = Integer.parseInt(sc.nextLine()); List<Integer> list = new ArrayList<>(); for (int i = 0; i < n; i++) { int number = Integer.parseInt(sc.nextLine()); list.add(number); }
  • 16.  Lists can be read from a single line of space separated values: Reading List Values from a Single Line 17 2 8 30 25 40 72 -2 44 56 String values = sc.nextLine(); List<String> items = Arrays.stream(values.split(" ")) .collect(Collectors.toList()); List<Integer> nums = new ArrayList<>(); for (int i = 0; i < items.size(); i++) nums.add(Integer.parseInt(items.get(i))); Convert a collection into List List<Integer> items = Arrays.stream(values.split(" ")) .map(Integer::parseInt).collect(Collectors.toList());
  • 17.  Printing a list using a for-loop:  Printing a list using a String.join(): Printing Lists on the Console 18 List<String> list = new ArrayList<>(Arrays.asList( "one", "two", "three", "four", "five", "six")); for (int index = 0; index < list.size(); index++) System.out.printf ("arr[%d] = %s%n", index, list.get(index)); List<String> list = new ArrayList<>(Arrays.asList( "one", "two", "three", "four", "five", "six")); System.out.println(String.join("; ", list)); Gets an element at given index
  • 18.  Write a program to sum all adjacent equal numbers in a list of decimal numbers, starting from left to right  Examples: Problem: Sum Adjacent Equal Numbers 19 3 3 6 1 12 1 8 2 2 4 8 16 16 8 16 5 4 2 1 1 4 5 8 4
  • 19. Scanner sc = new Scanner(System.in); List<Double> numbers = Arrays.stream(sc.nextLine().split(" ")) .map(Double::parseDouble).collect(Collectors.toList()); for (int i = 0; i < numbers.size() - 1; i++) if (numbers.get(i).equals(numbers.get(i + 1))) { numbers.set(i, numbers.get(i) + numbers.get(i + 1)); numbers.remove(i + 1); i = -1; } // Continues on the next slide Solution: Sum Adjacent Equal Numbers (1) 0
  • 20. Solution: Sum Adjacent Equal Numbers (2) 21 static String joinElementsByDelimiter (List<Double> items, String delimiter) { String output = ""; for (Double item : items) output += (new DecimalFormat("0.#").format(item) + delimiter); return output; } String output = joinElementsByDelimiter(numbers, " "); System.out.println(output);
  • 21.  Write a program that sums all numbers in a list in the following order:  first + last, first + 1 + last - 1, first + 2 + last - 2, … first + n, last – n  Examples: Problem: Gauss' Trick 22 1 2 3 4 5 6 6 3 1 2 3 4 5 5
  • 22. Solution: Gauss' Trick 3 Scanner sc = new Scanner(System.in); List<Integer> numbers = Arrays.stream(sc.nextLine().split(" ")) .map(Integer::parseInt).collect(Collectors.toList()); int size = numbers.size(); for (int i = 0; i < size / 2; i++) { numbers.set(i, numbers.get(i) + numbers.get(numbers.size() - 1)); numbers.remove(numbers.size() - 1); } System.out.println(numbers.toString().replaceAll("[[],]", ""));
  • 23.  You receive two lists with numbers. Print a result list which contains the numbers from both lists  If the length of the two lists is not equal, just add the remaining elements at the end of the list  list1[0], list2[0], list1[1], list2[1], … Problem: Merging Lists 24 1 2 3 4 5 6 7 8 1 6 2 7 3 8 4 5
  • 24. // TODO: Read the input List<Integer> resultNums = new ArrayList<>(); for (int i = 0; i < Math.min(nums1.size(), nums2.size()); i++) { // TODO: Add numbers in resultNums } if (nums1.size() > nums2.size()) resNums.addAll(getRemainingElements(nums1, nums2)); else if (nums2.size() > nums1.size()) resNums.addAll(getRemainingElements(nums2, nums1)); System.out.println(resNums.toString().replaceAll("[[],]", "")); Solution: Merging Lists (1) 25
  • 25. public static List<Integer> getRemainingElements (List<Integer> longerList, List<Integer> shorterList) { List<Integer> nums = new ArrayList<>(); for (int i = shorterList.size(); i < longerList.size(); i++) nums.add(longerList.get(i)); return nums; } Solution: Merging Lists (2) 26
  • 26. Live Exercises Reading and Manipulating Lists
  • 27. Sorting Lists and Arrays 28
  • 28.  Sorting a list == reorder its elements incrementally: Sort()  List items should be comparable, e.g. numbers, strings, dates, … Sorting Lists List<String> names = new ArrayList<>(Arrays.asList( "Peter", "Michael", "George", "Victor", "John")); Collections.sort(names); System.out.println(String.join(", ", names)); // George, John, Michael, Peter, Victor Collections.sort(names); Collections.reverse(names); System.out.println(String.join(", ", names)); // Victor, Peter, Michael, John, George Sort in natural (ascending) order Reverse the sorted result
  • 29.  Read a number n and n lines of products. Print a numbered list of all the products ordered by name  Examples: Problem: List of Products 30 4 Potatoes Tomatoes Onions Apples 1.Apples 2.Onions 3.Potatoes 4.Tomatoes A Z
  • 30. int n = Integer.parseInt(sc.nextLine()); List<String> products = new ArrayList<>(); for (int i = 0; i < n; i++) { String currentProduct = sc.nextLine(); products.add(currentProduct); } Collections.sort(products); for (int i = 0; i < products.size(); i++) System.out.printf("%d.%s%n", i + 1, products.get(i)); Solution: List of Products
  • 31.  Read a list of integers, remove all negative numbers from it  Print the remaining elements in reversed order  In case of no elements left in the list, print "empty" Problem: Remove Negatives and Reverse 32 10 -5 7 9 -33 50 50 9 7 10 7 -2 -10 1 1 7 -1 -2 -3 empty
  • 32. List<Integer> nums = Arrays.stream(sc.nextLine().split(" ")) .map(Integer::parseInt).collect(Collectors.toList()); for (int i = 0; i < nums.size(); i++) if (nums.get(i) < 0) nums.remove(i--); Collections.reverse(nums); if (nums.size() == 0) System.out.println("empty"); else System.out.println(nums.toString().replaceAll("[[],]", "")); Solution: Remove Negatives and Reverse
  • 34.  …  …  … Summary 35  Lists hold a sequence of elements (variable-length)  Can add / remove / insert elements at runtime  Creating (allocating) a list: new ArrayList<E>()  Accessing list elements by index  Printing list elements: String.join(…)
  • 35.  …  …  … Next Steps  Join the SoftUni "Learn To Code" Community  Access the Free Coding Lessons  Get Help from the Mentors  Meet the Other Learners https://softuni.org

Editor's Notes

  1. Hello, I am Svetlin Nakov from SoftUni (the Software University). Together with my colleague George Georgiev, we shall teach this free Java Foundations course, which covers important concepts from Java programming, such as arrays, lists, methods, strings, classes, objects and exceptions, and prepares you for the "Java Foundations" official exam from Oracle. In this lesson your instructor George will explain and demonstrate how to use lists in Java, how to allocate a list using the ArrayList generic class, how to access list elements by index, how to add, modify, insert, and delete elements from list and how to read, traverse and print a list. Lists in Java are like arrays: they hold an indexed sequence of elements of the same type. But unlike arrays, lists can resize. In this tutorial on Java arrays, along with the live coding examples, your instructor George will give you some hands-on exercises to gain practical experience. Are you ready? Let's start!
  2. Before the start, I would like to introduce your course instructors: Svetlin Nakov and George Georgiev, who are experienced Java developers, senior software engineers and inspirational tech trainers. They have spent thousands of hours teaching programming and software technologies and are top trainers from SoftUni. I am sure you will like how they teach programming.
  3. Most of this course will be taught by George Georgiev, who is a senior software engineer with many years of experience with Java, JavaScript and C++. George enjoys teaching programming very much and is one of the top trainers at the Software University, having delivered over 300 technical training sessions on the topics of data structures and algorithms, Java essentials, Java fundamentals, C++ programming, C# development and many others. I have no doubt you will benefit greatly from his lessons, as he always does his best to explain the most challenging concepts in a simple and fun way.
  4. Before we dive into the course, I want to show you the SoftUni judge system, where you can get instant feedback for your exercise solutions. SoftUni Judge is an automated system for code evaluation. You just send your code for a certain coding problem and the system will tell you whether your solution is correct or not and what exactly is missing or wrong. I am sure you will love the judge system, once you start using it!
  5. // Solution to problem "01. Student Information". import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String name = sc.nextLine(); int age = Integer.parseInt(sc.nextLine()); double grade = Double.parseDouble(sc.nextLine()); System.out.printf("Name: %s, Age: %d, Grade: %.2f", name, age, grade); } }
  6. In this section your instructor George will explain the concept of "Lists in Java" and how to use the ArrayList class. Lists in Java are like arrays, but they can change their size. You can add, modify, insert and delete elements from a list. Lists hold indexed sequence of elements, which can be freely modified. Let's learn how to use lists in Java and solve a few hands-on exercises to gain experience in processing sequences of elements.
  7. Did you like this lesson? Do you want more? Join the learners' community at softuni.org. Subscribe to my YouTube channel to get more free video tutorials on coding and software development. Get free access to the practical exercises and the automated judge system for this coding lesson. Get free help from mentors and meet other learners. Join now! It's free. SOFTUNI.ORG