создать hashMap<String name ,pojo values)
;Теперь прочитайте каждое имя и сохраните соответствующие значения местоположения, местоположения, адреса электронной почты, номера телефона в объект pojo.
map.put(name , pojo) ;
после вставки всех значений сортируйте карту по имени.везде, где используется hashmap для заполнения списка, перебирайте ключи и значения и используйте их
Когда имя повторяется
, лучше использовать ArrayList с вашим собственным компаратором.просмотрите этот фрагмент кода для получения дополнительной помощи
public class Main {
String name = null;
// 2011-12-11 11:30:20:0
public static void main(String[] args) {
ArrayList<Main> main = new ArrayList<Main>();
main.add(new Main("CRohit"));
main.add(new Main("DRohit"));
main.add(new Main("ARohit"));
main.add(new Main("12349"));
main.add(new Main("BRohit"));
main.add(new Main("ZRohit"));
main.add(new Main("12345"));
main.add(new Main("FRohit"));
main.add(new Main("12348"));
main.add(new Main(null));
main.add(new Main(null));
Collections.sort(main, new PojoComparator());
for(Main m : main)
{
System.out.println(m.getName());
}
}
public Main(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
class ChildProfileComparator implements Comparator<Main> {
@Override
public int compare(Main o1, Main o2) {
String firstName = o1.getName();
String secondName = o2.getName();
if (firstName == null) {
return +1;
}
if (secondName == null) {
return -1;
}
if(isNumber(firstName) && isNumber(secondName))
{
double d1 = Double.parseDouble(firstName);
double d2 = Double.parseDouble(secondName);
return (d1>d2)?+1:-1;
}
if(isNumber(firstName))
{
return +1;
}
if(isNumber(secondName))
{
return -1;
}
return o1.getName().compareTo(o2.getName());
}
public boolean isNumber(String x)
{
if(x == null)
{
return false;
}
return x.matches("^-?\\d+(\\.\\d+)?$");
}
}
}