Skip to content

Commit 74ad3da

Browse files
authored
Add files via upload
1 parent eefd741 commit 74ad3da

File tree

15 files changed

+554
-9
lines changed

15 files changed

+554
-9
lines changed

README.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ A repository for understanding Java data structures. Covers primitive data types
2121
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├── [**`Float`**](./primitive-data-types/wrapper-classes/Float/) [<sub>FloatWrapperExample.java</sub>](./primitive-data-types/wrapper-classes/Float/FloatWrapperExample.java)<br>
2222
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└── [**`Double`**](./primitive-data-types/wrapper-classes/Double/) [<sub>DoubleWrapperExample.java</sub>](./primitive-data-types/wrapper-classes/Double/DoubleWrapperExample.java)<br>
2323
│<br>
24-
├── non-primitive-data-types/<br>
25-
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├── basic/<br>
26-
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├── string.md<br>
27-
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└── array.md<br>
24+
├── [*non-primitive-types/*](./non-primitive-data-types/)<br>
25+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├── [*basic/*](./non-primitive-data-types/basic/)/<br>
26+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├── [**`String`**](./non-primitive-data-types/basic/String/) [<sub>StringExample.java</sub>](./non-primitive-data-types/basic/String/StringExample.java)<br>
27+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└── [**`Array`**](./non-primitive-data-types/basic/Array/) [<sub>ArrayExample.java</sub>](./non-primitive-data-types/basic/Array/ArrayExample.java)<br>
2828
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│<br>
29-
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└── collections/<br>
29+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└── [*collections/*](./non-primitive-data-types/collections/)<br>
3030
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├── list.md<br>
3131
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├── set.md<br>
3232
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├── map.md<br>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
import java.util.Arrays;
2+
import java.util.stream.Stream;
3+
4+
public class ArrayExample {
5+
public static void main(String[] args) {
6+
// Initialize arrays
7+
int[] intArray = { 1, 2, 3, 4, 5 };
8+
String[] strArray = { "Hello", "World", "Java", "Programming" };
9+
10+
int[] emptyArray = new int[5];
11+
// Initialize empty array
12+
emptyArray[0] = 200;
13+
emptyArray[1] = 45;
14+
emptyArray[2] = 20450;
15+
emptyArray[3] = 12;
16+
emptyArray[4] = 45;
17+
18+
// Display array characteristics
19+
displayArrayCharacteristics(intArray);
20+
21+
// Demonstrate array operations
22+
demonstrateArrayOperations(intArray, strArray);
23+
24+
// Demonstrate static methods
25+
demonstrateStaticMethods(intArray);
26+
27+
// Demonstrate instance methods
28+
demonstrateInstanceMethods(intArray);
29+
}
30+
31+
// Method to display characteristics of arrays
32+
private static void displayArrayCharacteristics(int[] array) {
33+
System.out.println("Array Characteristics:");
34+
System.out.println("Length of array: " + array.length);
35+
System.out.println("First element (index 0): " + array[0]);
36+
System.out.println("Default value of empty array: " + Arrays.toString(new int[5]));
37+
System.out.println(); // Empty line for separation
38+
}
39+
40+
// Method to demonstrate various array operations
41+
private static void demonstrateArrayOperations(int[] intArray, String[] strArray) {
42+
System.out.println("Array Operations:");
43+
44+
// Accessing elements
45+
System.out.println("Element at index 2 in intArray: " + intArray[2]);
46+
47+
// Iterating over arrays
48+
System.out.println("Iterating over intArray using for-each loop:");
49+
for (int num : intArray) {
50+
System.out.println(num);
51+
}
52+
53+
// Initializing arrays
54+
System.out.println("Empty array: " + Arrays.toString(new int[5]));
55+
56+
// Demonstrating multidimensional arrays
57+
int[][] multiArray = { { 1, 2 }, { 3, 4, 5 } };
58+
System.out.println("Multidimensional array representation: " + Arrays.deepToString(multiArray));
59+
60+
System.out.println(); // Empty line for separation
61+
}
62+
63+
// Method to demonstrate static methods
64+
private static void demonstrateStaticMethods(int[] array) {
65+
System.out.println("Static Array Methods:");
66+
67+
// Arrays.copyOf
68+
int[] copiedArray = Arrays.copyOf(array, 10);
69+
System.out.println("Copied array with length 10: " + Arrays.toString(copiedArray));
70+
71+
// Arrays.fill
72+
Arrays.fill(copiedArray, 5);
73+
System.out.println("Array after filling with 5: " + Arrays.toString(copiedArray));
74+
75+
// Arrays.sort
76+
Arrays.sort(array);
77+
System.out.println("Sorted array: " + Arrays.toString(array));
78+
79+
// Arrays.binarySearch
80+
int searchIndex = Arrays.binarySearch(array, 3);
81+
System.out.println("Index of 3 in sorted array: " + searchIndex);
82+
83+
// Arrays.stream
84+
Stream<Integer> arrayStream = Arrays.stream(array).boxed();
85+
System.out.println("Stream of array elements: ");
86+
arrayStream.forEach(System.out::println);
87+
88+
System.out.println(); // Empty line for separation
89+
}
90+
91+
// Method to demonstrate instance methods
92+
private static void demonstrateInstanceMethods(int[] array) {
93+
System.out.println("Instance Array Methods:");
94+
95+
// Length of array
96+
System.out.println("Length of array: " + array.length);
97+
98+
// Cloning an array
99+
int[] clonedArray = array.clone();
100+
System.out.println("Cloned array: " + Arrays.toString(clonedArray));
101+
102+
// Hash code of the array
103+
System.out.println("Hash code of array: " + array.hashCode());
104+
105+
System.out.println(); // Empty line for separation
106+
}
107+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# `Array` in Java
2+
3+
## Overview
4+
An array in Java is a data structure that can hold multiple values of the same type. Arrays in Java are zero-indexed, meaning the first element is accessed at index `0`. Once the size of an array is defined, it cannot be changed.
5+
6+
---
7+
8+
## Characteristics of Arrays
9+
10+
| **Feature** | **Details** |
11+
|----------------------|-------------------------------------------------------|
12+
| **Package** | `java.lang` |
13+
| **Fixed Size** | The size of an array is fixed once initialized. |
14+
| **Indexed** | Elements are accessed using an index. |
15+
| **Default Values** | Numeric types default to `0`, boolean defaults to `false`, and object references to `null`. |
16+
17+
---
18+
19+
## Key Features of Arrays
20+
21+
- **Fixed Size**: Once an array is initialized, its size cannot be changed.
22+
- **Zero-Indexing**: Arrays are zero-indexed, meaning the first element is accessed at index `0`.
23+
- **Homogeneous Elements**: All elements in an array are of the same data type.
24+
- **Memory Efficiency**: Arrays are efficient in terms of memory storage for large amounts of data.
25+
26+
---
27+
28+
## Operations on Array Types
29+
30+
### **Array Operations**
31+
32+
| **Operation** | **Symbol** | **Example** |
33+
|-----------------------|---------------|--------------------------------------------------|
34+
| Accessing Elements | `[]` | `arr[0]` |
35+
| Length of Array | `.length` | `arr.length` |
36+
| Initializing Array | `new` | `type[] arr = new type[5];`<br> &nbsp; &nbsp; eg:- <br> &nbsp; &nbsp; &nbsp; &nbsp; `int`[] arr = new `int`[5];<br> &nbsp; &nbsp; &nbsp; &nbsp; `double`[] arr = new `double`[5]; <br> &nbsp; &nbsp; &nbsp; &nbsp; `String`[] arr = new `String`[5]; |
37+
| Iterating over Array | `for-each` | for (`int` num : arr) { <br> &nbsp; &nbsp; &nbsp; System.out.println(num); <br> } |
38+
39+
---
40+
41+
# Static Methods
42+
43+
| **Method** | **Description** | **Return Type** | **Example** |
44+
|---------------------------------------------|----------------------------------------------------------------------------|--------------------|-------------------------------------------------|
45+
| `copyOf(int[] original, int newLength)` | Copies the specified array, truncating or padding with `0` or `null`. | `int[]` | `Arrays.copyOf(arr, 10);` |
46+
| `fill(int[] array, int val)` | Fills the array with the specified value. | `void` | `Arrays.fill(arr, 5);` |
47+
| `equals(int[] a, int[] b)` | Compares two arrays for equality. | `boolean` | `Arrays.equals(arr1, arr2);` |
48+
| `sort(int[] a)` | Sorts the specified array in ascending order. | `void` | `Arrays.sort(arr);` |
49+
| `binarySearch(int[] a, int key)` | Searches for a value in a sorted array. Returns the index of the search key, or a negative value if not found. | `int` | `Arrays.binarySearch(arr, 5);` |
50+
| `deepToString(Object[] arr)` | Returns a string representation of a multidimensional array. | `String` | `Arrays.deepToString(arr);` |
51+
| `toString(Object[] arr)` | Returns a string representation of the array, using `Arrays.toString()` to format the array as a string. | `String` | `Arrays.toString(arr);` |
52+
| `copyOfRange(T[] arr, int from, int to)` | Copies a specified range from the array to a new array. | `T[]` | `Arrays.copyOfRange(arr, 2, 5);` |
53+
| `compare(T[] arr1, T[] arr2)` | Compares two arrays lexicographically. Returns a negative value if the first array is less than the second, positive if greater, or 0 if equal. | `int` | `Arrays.compare(arr1, arr2);` |
54+
| `stream(T[] arr)` | Converts the array into a stream, enabling operations like filtering, mapping, and reducing. | `Stream<T>` | `Arrays.stream(arr1);` | `T Stream` | `Arrays.stream(arr1)` |
55+
56+
---
57+
58+
## Instance Methods
59+
60+
| **Method** | **Description** | **Return Type** | **Example** |
61+
|-------------|------------------------------------------|--------------------|----------------------------------------------|
62+
| `length` | Returns the length of the array. | `int` | `arr.length;` |
63+
| `clone()` | Creates a copy of the array. | `Object` | `arr.clone();` |
64+
| `hashCode()`| Returns a hash code value for the array. | `int` | `arr.hashCode();` |
65+
66+
---
67+
68+
## Example Code
69+
70+
```java
71+
import java.util.Arrays;
72+
73+
public class ArrayExample {
74+
public static void main(String[] args) {
75+
// Create an array
76+
int[] arr = {5, 2, 9, 1, 5, 6};
77+
78+
// Get the length of the array
79+
System.out.println("Array length: " + arr.length);
80+
81+
// Access elements
82+
System.out.println("Element at index 0: " + arr[0]);
83+
84+
// Sort the array
85+
Arrays.sort(arr);
86+
System.out.println("Sorted array: " + Arrays.toString(arr));
87+
88+
// Search for an element
89+
int index = Arrays.binarySearch(arr, 5);
90+
System.out.println("Index of 5: " + index);
91+
92+
// Fill the array with a specific value
93+
Arrays.fill(arr, 0);
94+
System.out.println("Filled array: " + Arrays.toString(arr));
95+
96+
// Clone the array
97+
int[] clonedArray = arr.clone();
98+
System.out.println("Cloned array: " + Arrays.toString(clonedArray));
99+
}
100+
}
101+
```
102+
103+
> **For more:** [`ArrayExample.java`](./ArrayExample.java)

0 commit comments

Comments
 (0)