Data Analytics
27K subscribers
1.16K photos
24 videos
26 files
977 links
Dive into the world of Data Analytics – uncover insights, explore trends, and master data-driven decision making.
Download Telegram
Data Analytics
# 📚 Java Programming Language – Part 8/10: Exception Handling #Java #Exceptions #ErrorHandling #Programming Welcome to Part 8 of our Java series! Today we'll master how to handle errors and exceptional situations in Java programs. --- ## 🔹 What are Exceptions?…
# 📚 Java Programming Language – Part 9/10: Collections Framework
#Java #Collections #DataStructures #Programming

Welcome to Part 9 of our Java series! Today we'll explore the powerful Collections Framework - essential for handling groups of objects efficiently.

---

## 🔹 Collections Framework Overview
The Java Collections Framework provides:
- Interfaces (List, Set, Map, etc.)
- Implementations (ArrayList, HashSet, HashMap, etc.)
- Algorithms (Searching, Sorting, Shuffling)

![Collections Hierarchy](https://i.imgur.com/JDVqQ0E.png)

---

## 🔹 Core Interfaces
| Interface | Description | Key Implementations |
|-----------|-------------|---------------------|
| List | Ordered collection (allows duplicates) | ArrayList, LinkedList |
| Set | Unique elements (no duplicates) | HashSet, TreeSet |
| Queue | FIFO ordering | LinkedList, PriorityQueue |
| Map | Key-value pairs | HashMap, TreeMap |

---

## 🔹 List Implementations
### 1. ArrayList
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add(1, "Charlie"); // Insert at index 1

System.out.println(names); // [Alice, Charlie, Bob]
System.out.println(names.get(0)); // Alice


### 2. LinkedList
List<Integer> numbers = new LinkedList<>();
numbers.add(10);
numbers.addFirst(5); // Add to beginning
numbers.addLast(20); // Add to end

System.out.println(numbers); // [5, 10, 20]


---

## 🔹 Set Implementations
### 1. HashSet (Unordered)
Set<String> uniqueNames = new HashSet<>();
uniqueNames.add("Alice");
uniqueNames.add("Bob");
uniqueNames.add("Alice"); // Duplicate ignored

System.out.println(uniqueNames); // [Alice, Bob] (order may vary)


### 2. TreeSet (Sorted)
Set<Integer> sortedNumbers = new TreeSet<>();
sortedNumbers.add(5);
sortedNumbers.add(2);
sortedNumbers.add(8);

System.out.println(sortedNumbers); // [2, 5, 8]


---

## 🔹 Map Implementations
### 1. HashMap
Map<String, Integer> ageMap = new HashMap<>();
ageMap.put("Alice", 25);
ageMap.put("Bob", 30);
ageMap.put("Alice", 26); // Overwrites previous value

System.out.println(ageMap.get("Alice")); // 26
System.out.println(ageMap.containsKey("Bob")); // true


### 2. TreeMap (Sorted by keys)
Map<String, String> sortedMap = new TreeMap<>();
sortedMap.put("Orange", "Fruit");
sortedMap.put("Carrot", "Vegetable");
sortedMap.put("Apple", "Fruit");

System.out.println(sortedMap);
// {Apple=Fruit, Carrot=Vegetable, Orange=Fruit}


---

## 🔹 Iterating Collections
### 1. For-Each Loop
List<String> colors = List.of("Red", "Green", "Blue");
for (String color : colors) {
System.out.println(color);
}


### 2. Iterator
Set<Integer> numbers = new HashSet<>(Set.of(1, 2, 3));
Iterator<Integer> it = numbers.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}


### 3. forEach() Method (Java 8+)
Map<String, Integer> map = Map.of("A", 1, "B", 2);
map.forEach((key, value) ->
System.out.println(key + ": " + value));


---

## 🔹 Collections Utility Class
Powerful static methods for collections:

List<Integer> numbers = new ArrayList<>(List.of(3, 1, 4, 1, 5));

Collections.sort(numbers); // [1, 1, 3, 4, 5]
Collections.reverse(numbers); // [5, 4, 3, 1, 1]
Collections.shuffle(numbers); // Random order
Collections.frequency(numbers, 1); // 2


---
Data Analytics
# 📚 Java Programming Language – Part 8/10: Exception Handling #Java #Exceptions #ErrorHandling #Programming Welcome to Part 8 of our Java series! Today we'll master how to handle errors and exceptional situations in Java programs. --- ## 🔹 What are Exceptions?…
## 🔹 Practical Example: Student Grade System
public class GradeSystem {
private Map<String, List<Integer>> studentGrades = new HashMap<>();

public void addGrade(String student, int grade) {
studentGrades.computeIfAbsent(student, k -> new ArrayList<>()).add(grade);
}

public double getAverage(String student) {
return studentGrades.getOrDefault(student, List.of())
.stream()
.mapToInt(Integer::intValue)
.average()
.orElse(0.0);
}

public Set<String> getTopStudents(double minAverage) {
return studentGrades.entrySet().stream()
.filter(entry -> getAverage(entry.getKey()) >= minAverage)
.map(Map.Entry::getKey)
.collect(Collectors.toSet());
}
}

// Usage:
GradeSystem system = new GradeSystem();
system.addGrade("Alice", 90);
system.addGrade("Alice", 95);
system.addGrade("Bob", 80);

System.out.println(system.getAverage("Alice")); // 92.5
System.out.println(system.getTopStudents(85)); // [Alice]


---

## 🔹 Best Practices
1. Use interface references (List instead of ArrayList)
2. Initialize with capacity for large collections
3. Use immutable collections when possible (List.of())
4. Choose the right collection based on needs
5. Consider thread safety (CopyOnWriteArrayList, ConcurrentHashMap)

---

### 📌 What's Next?
In Final Part 10, we'll cover:
➡️ Java Streams API
➡️ Lambda Expressions
➡️ Modern Java Features

#JavaCollections #DataStructures #Programming 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
# 📚 JavaScript Tutorial - Part 3/10: Arrays, Objects & JSON
#JavaScript #WebDev #Programming #DataStructures

Welcome to Part 3 of our JavaScript series! Today we'll master arrays, objects, and JSON - essential for handling complex data.

---

## 🔹 Arrays in JavaScript
Ordered collections that can hold multiple values.

### 1. Creating Arrays
// Array literal (recommended)
const fruits = ['Apple', 'Banana', 'Orange'];

// Array constructor
const numbers = new Array(1, 2, 3);

// Mixed data types
const mixed = [1, 'Hello', true, {name: 'Ali'}];


### 2. Accessing Elements
console.log(fruits[0]);  // "Apple" (0-based index)
console.log(fruits.length); // 3


### 3. Common Array Methods
| Method | Description | Example |
|--------|-------------|---------|
| push() | Add to end | fruits.push('Mango') |
| pop() | Remove from end | fruits.pop() |
| shift() | Remove from start | fruits.shift() |
| unshift() | Add to start | fruits.unshift('Kiwi') |
| slice() | Get sub-array | fruits.slice(1, 3) |
| splice() | Add/remove items | fruits.splice(1, 0, 'Berry') |

---

## 🔹 Modern Array Methods (ES6+)
Powerful functional programming tools.

### 1. forEach()
fruits.forEach(fruit => console.log(fruit));


### 2. map()
const upperFruits = fruits.map(fruit => fruit.toUpperCase());


### 3. filter()
const longFruits = fruits.filter(fruit => fruit.length > 5);


### 4. reduce()
const sum = [1, 2, 3].reduce((total, num) => total + num, 0);


### 5. find() & findIndex()
const banana = fruits.find(fruit => fruit === 'Banana');
const bananaIndex = fruits.findIndex(fruit => fruit === 'Banana');


### 6. some() & every()
const hasApple = fruits.some(fruit => fruit === 'Apple');
const allLong = fruits.every(fruit => fruit.length > 3);


---

## 🔹 Objects in JavaScript
Collections of key-value pairs (properties).

### 1. Creating Objects
// Object literal (recommended)
const person = {
name: 'Ali',
age: 25,
hobbies: ['reading', 'coding'],
address: {
city: 'Dubai',
country: 'UAE'
}
};


### 2. Accessing Properties
// Dot notation
console.log(person.name); // "Ali"

// Bracket notation (useful for dynamic keys)
const key = 'age';
console.log(person[key]); // 25


### 3. Modifying Objects
// Add property
person.job = 'Developer';

// Delete property
delete person.age;

// Check property existence
'name' in person; // true


---

## 🔹 Object Methods
### 1. Object.keys()
const keys = Object.keys(person);  // ["name", "age", ...]


### 2. Object.values()
const values = Object.values(person);


### 3. Object.entries()
for (const [key, value] of Object.entries(person)) {
console.log(`${key}: ${value}`);
}


### 4. Object Spread (ES9+)
const newPerson = {...person, age: 26};


---

## 🔹 JSON (JavaScript Object Notation)
Universal data format for APIs.

### 1. JSON ↔️ JavaScript
// Object to JSON string
const jsonStr = JSON.stringify(person);

// JSON string to object
const parsedObj = JSON.parse(jsonStr);


### 2. JSON Structure
{
"name": "Ali",
"age": 25,
"isStudent": false,
"courses": ["Math", "CS"]
}


---

## 🔹 Destructuring Assignment
Unpack values from arrays/objects.

### 1. Array Destructuring
const [first, second] = fruits;
console.log(first); // "Apple"


### 2. Object Destructuring
const {name, age} = person;
console.log(name); // "Ali"

// With renaming
const {name: personName} = person;


### 3. Function Parameter Destructuring
function printUser({name, age}) {
console.log(`${name} is ${age} years old`);
}


---