java ArrayList 转Long[]
时间: 2023-07-15 11:14:31 浏览: 67
可以使用 Java 8 中的 `Stream` API 来实现:
```java
import java.util.ArrayList;
import java.util.stream.Collectors;
public class Example {
public static void main(String[] args) {
ArrayList<Long> arrayList = new ArrayList<>();
arrayList.add(1L);
arrayList.add(2L);
arrayList.add(3L);
Long[] longArray = arrayList.stream().toArray(Long[]::new);
for (Long element : longArray) {
System.out.println(element);
}
}
}
```
这段代码将 `ArrayList` 中的元素转换为 `Long` 类型的数组,并使用 `stream().toArray()` 方法来返回对应的数组。由于 `toArray()` 方法返回的是 `Object[]` 类型,所以需要使用方法引用 `Long[]::new` 来创建一个新的 `Long` 数组。
相关问题
java ArrayList 转LONG[]
可以使用Java 8 Stream API的toArray方法将ArrayList转换为long数组。示例代码如下:
```java
import java.util.ArrayList;
import java.util.List;
public class ArrayListToLongArray {
public static void main(String[] args) {
List<Long> list = new ArrayList<>();
list.add(1L);
list.add(2L);
list.add(3L);
long[] array = list.stream().mapToLong(Long::longValue).toArray();
for (long element : array) {
System.out.println(element);
}
}
}
```
运行结果:
```
1
2
3
```
java arraylist groupby count
在Java中,`ArrayList`本身并不直接支持类似于SQL中的GROUP BY和COUNT操作,因为这些是数据库查询中的功能。如果你想要对`ArrayList`中的元素进行分组并计算每个组的数量,你需要自己编写代码来实现这个逻辑。通常,这涉及到创建一个自定义的分组函数,然后遍历列表,对相同条件的元素进行计数。
以下是一个简单的例子,假设你有一个`Person`对象的`ArrayList`,你想按照年龄分组并计算每个年龄段的人数:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
class Person {
int age;
// 其他属性...
@Override
public String toString() {
return "Person{" +
"age=" + age +
'}';
}
}
public class GroupByCountExample {
public static void main(String[] args) {
ArrayList<Person> people = new ArrayList<>();
// 添加一些Person对象到people
Map<Integer, Integer> ageCounts = new HashMap<>();
for (Person person : people) {
int age = person.age;
ageCounts.put(age, ageCounts.getOrDefault(age, 0) + 1);
}
for (Map.Entry<Integer, Integer> entry : ageCounts.entrySet()) {
System.out.println("Age: " + entry.getKey() + ", Count: " + entry.getValue());
}
}
}
```
在这个示例中,我们首先创建了一个`HashMap`,键是年龄,值是对应年龄的人数。然后遍历`ArrayList`,对每个`Person`对象的年龄进行更新计数。最后,我们打印出每个年龄及其对应的计数值。
如果你想用更现代的Java API(Java 8及以上),可以使用`Collectors.groupingBy`和`counting`方法,结合`Stream`处理:
```java
import java.util.*;
import java.util.stream.Collectors;
List<Person> people = ... // 填充数据
Map<Integer, Long> ageCounts = people.stream()
.collect(Collectors.groupingBy(Person::getAge, Collectors.counting()));
for (Map.Entry<Integer, Long> entry : ageCounts.entrySet()) {
System.out.println("Age: " + entry.getKey() + ", Count: " + entry.getValue());
}
```
这里我们使用了`groupingBy`方法根据年龄分组,并用`counting`方法计算每个组的数量。`entry.getKey()`返回年龄,`entry.getValue()`返回计数。
阅读全文