gpt4 book ai didi

java - 如何在数组中存储多个数据类型?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:54 32 4
gpt4 key购买 nike

我正在寻找类似数组的东西,但它需要存储多种数据类型。 Oracle Java 教程说:“数组是一个容器对象,它包含固定数量的单一类型的值。”所以,如果我不能为多种类型使用数组,我该用什么?

我得到的代码一次只向 map 添加一个标记,因为它在每个循环中覆盖我的纬度和经度值,并且只将最后一个传递给 onPostExecute。所以我需要像数组这样的东西来传递多种形式的联系信息。即我正在从每个 JSON 字符串中提取位置,但我也需要从该后台线程中提取姓名和电话号码并将其传递给 UI。

try {

String apples = endpoint.listContactInfo().execute().toString();

JSONObject jObject = new JSONObject(apples);

JSONArray jsonArr = jObject.getJSONArray("items");

for(int i =0 ; i<jsonArr.length() ;i++ ){
JSONObject jsonObj1 = jsonArr.getJSONObject(i);


// Storing each json item in variable
String id = jsonObj1.getString(TAG_ID);
String nameFirst1 = jsonObj1.getString(TAG_FIRSTNAME);
String nameLast1 = jsonObj1.getString(TAG_LASTNAME);
String emailAddress1 = jsonObj1.getString(TAG_EMAIL);
String streetAddress1 = jsonObj1.getString(TAG_ADDRESS);
String phone1 = jsonObj1.getString(TAG_PHONE);

//test to see if made it to string
Log.d("YOUR_TAG", "First Name: " + nameFirst1 + " Last Name: " + nameLast1);

address = coder.getFromLocationName(streetAddress1,5);

Address location1 = address.get(0);

// SET LAT LNG VALUES FOR MARKER POINT

lati = location1.getLatitude();
longi = location1.getLongitude();



Log.d("Location", "Location:" + lati + " " + longi);


}

} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return (long) 0;


}
// ADD MARKER TO MAP UI
protected void onPostExecute(Long result) {
mMap.addMarker(new MarkerOptions()
.position(new LatLng(lati, longi))
.title("Hello world"));
}

最佳答案

您可以使用ArrayList

ArrayList<Object> listOfObjects = new ArrayList<Object>();

然后向其中添加项目。

listOfObjects.add("1");
listOfObjects.add(someObject);

或者创建你自己的对象来封装你需要的所有字段,比如

public class LocationData {
private double lat;
private double longitude;

public LocationData(double lat, double longitude) {
this.lat = lat;
this.longitude = longitude;
}
//getters
//setters
}

然后将您的纬度/经度对添加到 LocationData 类型的 ArrayList

ArrayList<LocationData> listOfObjects = new ArrayList<LocationData>();

listOfObjects.add(new LocationData(lat, longitude));

关于java - 如何在数组中存储多个数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18624885/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com