写一个使用stream流把数组中的元素封装到list指定泛型的结合中
时间: 2023-03-27 22:00:55 浏览: 44
可以使用以下代码实现:
```java
int[] arr = {1, 2, 3, 4, 5};
List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList());
```
这段代码将整型数组 `arr` 中的元素封装到一个泛型为 `Integer` 的 `List` 集合中。使用 `Arrays.stream(arr)` 将数组转换为流,然后使用 `boxed()` 将流中的元素装箱为 `Integer` 类型,最后使用 `collect(Collectors.toList())` 将流中的元素收集到一个 `List` 集合中。
相关问题
c#使用泛型类编写有一个数组,根据输入的内容是否是数字,存储到不同的数组中
可以通过使用泛型类和 LINQ 的方式来实现。
首先,定义一个泛型类,包含两个属性,分别表示存储数字和非数字的数组:
```csharp
class ArraySplitter<T>
{
public List<T> NumberArray { get; set; } = new List<T>();
public List<T> NonNumberArray { get; set; } = new List<T>();
}
```
然后,在主函数中读取用户输入,根据输入的内容是否是数字,将其存储到不同的数组中:
```csharp
static void Main(string[] args)
{
// 读取用户输入的内容
Console.WriteLine("Please enter a series of values separated by space:");
string input = Console.ReadLine();
// 将输入的字符串拆分成一个数组
string[] inputValues = input.Split(' ');
// 创建一个 ArraySplitter 实例
ArraySplitter<string> splitter = new ArraySplitter<string>();
// 遍历输入的数组,根据元素类型将其添加到不同的数组中
foreach (string value in inputValues)
{
if (int.TryParse(value, out int numberValue))
{
splitter.NumberArray.Add(value);
}
else
{
splitter.NonNumberArray.Add(value);
}
}
// 输出结果
Console.WriteLine($"Number Array: {string.Join(", ", splitter.NumberArray)}");
Console.WriteLine($"Non-Number Array: {string.Join(", ", splitter.NonNumberArray)}");
Console.ReadKey();
}
```
在上面的代码中,我们使用 `int.TryParse` 来判断输入的内容是否为数字,如果是,将其添加到 `NumberArray` 中,否则添加到 `NonNumberArray` 中。最后,输出结果即可。
注意,我们在定义 `ArraySplitter` 类时使用了泛型,这是为了支持不同类型的数组。如果需要处理的是整数数组,可以将 `ArraySplitter` 定义为 `ArraySplitter<int>`。
c#(泛型类 有一个 数组 ) 根据输入内容是否是数字 存储到不同的数组中
可以使用泛型类以及C#自带的IsDigit()方法来实现。以下是一个示例代码:
```csharp
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
List<int> numbers = new List<int>();
List<string> strings = new List<string>();
Console.WriteLine("Please enter a series of numbers or strings separated by commas:");
string input = Console.ReadLine();
string[] inputArray = input.Split(',');
foreach (string item in inputArray)
{
if (IsNumeric(item))
{
numbers.Add(int.Parse(item));
}
else
{
strings.Add(item);
}
}
Console.WriteLine("Numbers:");
foreach (int number in numbers)
{
Console.WriteLine(number);
}
Console.WriteLine("Strings:");
foreach (string str in strings)
{
Console.WriteLine(str);
}
Console.ReadLine();
}
public static bool IsNumeric(string input)
{
return int.TryParse(input, out int n);
}
}
```
在这个示例中,我们首先创建了两个空的泛型列表 `numbers` 和 `strings`,用于存储数字和非数字的输入内容。然后读取用户输入的字符串,并使用 `Split()` 方法将其分成一个字符串数组。
接下来,使用 `foreach` 循环遍历数组中的每个元素,并使用 `IsNumeric()` 方法确定该元素是否为数字。如果是数字,则将其转换为整数,并将其添加到 `numbers` 列表中。如果不是数字,则将其添加到 `strings` 列表中。
最后,我们使用 `foreach` 循环遍历 `numbers` 和 `strings` 列表,并将它们分别打印出来。
相关推荐













