ここでキーは緯度と経度の差、値は文字列値のリストです。ハッシュマップのキーと値を別々にしたい。
それは可能ですか?私に提案してください。
MainActivity.java
public void getExpandableListData() {
Cursor cursor = databaseHelper.getLoadMoreData(count);
cursor.moveToFirst();
String businessName;
String latitude;
String longitude;
String categoryDescription;
double difference;
Log.i(TAG, "cursor.getCount() :" + cursor.getCount());
do {
categoryDescription = cursor.getString(cursor
.getColumnIndex("categorydesc"));
Log.i("categoryDescription", "" + categoryDescription);
int categoryId = cursor.getInt(cursor.getColumnIndex("CategoryId"));
Log.i("category Id",
"" + cursor.getInt(cursor.getColumnIndex("CategoryId")));
listDataHeader.add(categoryDescription);
Log.w("list Data Header", "" + listDataHeader);
currentLocation = new Location("");
currentLocation.setLatitude(18.5522);
currentLocation.setLongitude(73.8956);
List<ChildInfo> childList = new ArrayList<ChildInfo>();
Cursor cursorChild = databaseHelper.getChildData(categoryId);
Map.Entry<Double, List<ChildInfo>> entry;
List<ChildInfo> list = null;
cursorChild.moveToFirst();
do {
businessName = cursorChild.getString(cursorChild
.getColumnIndex("BusinessName"));
phoneNumber = cursorChild.getString(cursorChild
.getColumnIndex("Phone"));
categoryDescription = cursorChild.getString(cursorChild
.getColumnIndex("categorydesc"));
latitude = cursorChild.getString(cursorChild
.getColumnIndex("Latitude"));
longitude = cursorChild.getString(cursorChild
.getColumnIndex("Longitude"));
ChildInfo childInfo = new ChildInfo(businessName, phoneNumber,
categoryDescription, latitude, longitude);
childList.add(childInfo);
Location savedLocation = new Location("databaseLocation");
savedLocation.setLatitude(Double.parseDouble(latitude));
savedLocation.setLongitude(Double.parseDouble(longitude));
difference = currentLocation.distanceTo(savedLocation) * (0.001);
hashMapLocationDifference.put(difference, childList);
hashMapLocationDifference = sortByKeys(hashMapLocationDifference);
Log.i("sortedHashMap:", "" + hashMapLocationDifference);
Set<Double> keySet = new LinkedHashSet<Double>();
keySet = hashMapLocationDifference.keySet();
entry = hashMapLocationDifference.entrySet().iterator().next();
list = new ArrayList<ChildInfo>();
list = entry.getValue();
listDataChild.put(categoryDescription, list);
} while (cursorChild.moveToNext());
} while (cursor.moveToNext());
cursor.close();
}
keyset() に繰り返しやループを使用したくありません。繰り返しなしで使用するには?