java,将Point类型的ArrayList转化为Point类型的数组
时间: 2024-05-07 15:15:28 浏览: 52
可以使用ArrayList的toArray方法将ArrayList转化为数组:
```java
ArrayList<Point> pointList = new ArrayList<>();
// 添加元素到pointList中
...
Point[] pointArray = pointList.toArray(new Point[pointList.size()]);
```
在toArray方法中,可以传入一个指定类型的数组作为参数,如果该数组的长度不足以容纳ArrayList中的所有元素,则会创建一个新的数组。如果指定的数组长度大于ArrayList中的元素个数,则会将多余的部分设置为null。如果指定的数组长度小于ArrayList中的元素个数,则会抛出ArrayIndexOutOfBoundsException异常。
相关问题
java中有一串格式为[[{"lng":11111,"lat":222222},{"lng":11111,"lat":222222},{"lng":11111,"lat":222222}]]的字符串,将其按坐标转化为Point对象
在Java中,你可以将这个JSON字符串解析成`Point`对象数组。首先,你需要创建一个`Point`类,它通常会包含经纬度信息。假设已经有一个`Point`类:
```java
public class Point {
private double lng;
private double lat;
public Point(double lng, double lat) {
this.lng = lng;
this.lat = lat;
}
// getters and setters...
}
```
然后,你可以使用`Gson`库(如果项目中还没有引入的话,需要添加依赖并导入`com.google.gson.Gson`)来转换JSON字符串。下面是一个示例方法:
```java
import com.google.gson.Gson;
public List<Point> convertJsonToList(String jsonString) {
Gson gson = new Gson();
Type listType = new TypeToken<List<Map<String, Double>>>(){}.getType(); // 获取List<Map<String, Double>>类型的泛型
List<Map<String, Double>> maps = gson.fromJson(jsonString, listType); // 解析JSON到Map列表
List<Point> points = new ArrayList<>();
for (Map<String, Double> map : maps) {
double lng = map.get("lng");
double lat = map.get("lat");
points.add(new Point(lng, lat)); // 创建Point对象并添加到列表
}
return points;
}
```
在这个例子中,`convertJsonToList`方法接收一个JSON字符串,使用`Gson`将其转换为`Map`列表,再遍历每个`Map`,从中提取`lng`和`lat`值,并创建一个新的`Point`实例。
阅读全文