Practical Conversion Examples
Real-World Conversion Scenarios
1. User Management System
import java.util.*;
import java.util.stream.*;
public class UserManagementDemo {
public static void main(String[] args) {
// Original user list
List<String> userNames = Arrays.asList(
"Alice", "Bob", "Charlie", "David", "Eve"
);
// Convert to unique user set
Set<String> uniqueUsers = new HashSet<>(userNames);
// Convert to uppercase user list
List<String> formattedUsers = uniqueUsers.stream()
.map(String::toUpperCase)
.collect(Collectors.toList());
}
}
Conversion Patterns
Scenario |
Source |
Destination |
Conversion Method |
Removing Duplicates |
List |
Set |
new HashSet<>() |
Data Transformation |
Set |
List |
Stream Mapping |
Sorting Collection |
List |
Sorted List |
Collections.sort() |
Complex Conversion Example
import java.util.*;
import java.util.stream.*;
class Product {
String name;
double price;
Product(String name, double price) {
this.name = name;
this.price = price;
}
}
public class ProductConversionDemo {
public static void main(String[] args) {
// Original product list
List<Product> products = Arrays.asList(
new Product("Laptop", 1000),
new Product("Phone", 500),
new Product("Tablet", 300)
);
// Convert to map of product names and prices
Map<String, Double> productMap = products.stream()
.collect(Collectors.toMap(
p -> p.name,
p -> p.price
));
// Convert map keys to sorted list
List<String> sortedProductNames = new ArrayList<>(productMap.keySet())
.stream()
.sorted()
.collect(Collectors.toList());
}
}
Conversion Strategy Visualization
graph TD
A[Original Collection] --> B{Conversion Strategy}
B --> |Deduplication| C[Unique Elements]
B --> |Transformation| D[Modified Collection]
B --> |Sorting| E[Ordered Collection]
- Use appropriate collection types
- Leverage Stream API for complex transformations
- Minimize unnecessary conversions
Error Handling in Conversions
import java.util.*;
import java.util.stream.*;
public class SafeConversionDemo {
public static void main(String[] args) {
List<String> data = Arrays.asList("1", "2", "3", "invalid");
// Safe numeric conversion
List<Integer> numbers = data.stream()
.map(s -> {
try {
return Integer.parseInt(s);
} catch (NumberFormatException e) {
return null;
}
})
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
}
LabEx Learning Tip
Explore advanced collection conversion techniques in LabEx's interactive Java programming environments to enhance your skills.
Key Takeaways
- Collection conversion is context-dependent
- Stream API provides powerful transformation capabilities
- Always consider performance and data integrity
- Implement robust error handling strategies