我读到了使用Comparator对ArrayLists进行排序,但在所有人们使用的例子中compareTo,根据一些研究,这是一个字符串的方法.
我想通过它们的一个属性对自定义对象的ArrayList进行排序:Date对象(getStartDay()).通常我会比较它们item1.getStartDate().before(item2.getStartDate())所以我想知道我是否可以这样写:
public class CustomComparator {
public boolean compare(Object object1, Object object2) {
return object1.getStartDate().before(object2.getStartDate());
}
}
public class RandomName {
...
Collections.sort(Database.arrayList, new CustomComparator);
...
}
Run Code Online (Sandbox Code Playgroud) 有没有一种简单的方法可以从对象的arraylist中的对象的一个字段中获取最大值?
例如,在以下对象中,我希望获得Value字段的最高值.
示例arraylist我想从中获取ValuePairs.mValue的最大值.
ArrayList<ValuePairs> ourValues = new ArrayList<>();
outValues.add(new ValuePairs("descr1", 20.00));
outValues.add(new ValuePairs("descr2", 40.00));
outValues.add(new ValuePairs("descr3", 50.00));
Run Code Online (Sandbox Code Playgroud)
用于创建存储在arraylist中的对象的类:
public class ValuePairs {
public String mDescr;
public double mValue;
public ValuePairs(String strDescr, double dValue) {
this.mDescr = strDescr;
this.mValue = dValue;
}
}
Run Code Online (Sandbox Code Playgroud)
我试图通过做类似的事情来获取mValue的最大值(我知道这是不正确的):
double dMax = Collections.max(ourValues.dValue);
Run Code Online (Sandbox Code Playgroud)
dMax应为50.00.
任何帮助表示赞赏.谢谢!
Map<Integer, String> map = new TreeMap<Integer, String>();
// Add Items to the TreeMap
map.put(new Integer(8), "Eight");
map.put(new Integer(9), "Nine");
map.put(new Integer(1), "One");
map.put(new Integer(4), "Four");
map.put(new Integer(10), "Ten");
map.put(new Integer(5), "Five");
map.put(new Integer(6), "Six");
map.put(new Integer(2), "Two");
map.put(new Integer(3), "Three");
map.put(new Integer(7), "Seven");
keys = map.keySet();
for (Iterator i = keys.iterator(); i.hasNext();) {
Integer key = (Integer) i.next();
String value = (String) map.get(key);
System.out.println(key + " = " + value);
}
Run Code Online (Sandbox Code Playgroud)
我有这门课:
public class Friend {
private String name;
private String location;
private String temp;
private String humidity;
public String getTemp() {
return temp;
}
public void setTemp(String temp) {
this.temp = temp;
}
public String getHumidity() {
return humidity;
}
public void setHumidity(String humidity) {
this.humidity = humidity;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location; …Run Code Online (Sandbox Code Playgroud) 我在我的java程序中使用了一个链表,该元素是一个自定义类型,它有三个字段,其中一个是Integer类型.我的问题是:如何根据整数提交的值对链表进行排序?
我有一个对象的ArrayList.每个对象都是Player类型(我拥有的类之一).每个Player对象都有一个getName()方法和一个getValue()方法.getValue方法是整数类型.所有Player对象都进入ArrayList,listOfPlayers.如何找到getValue()最高的PLayer对象?
我知道有一个名为Collections.max()的方法,但对我来说,似乎只有ArrayList只是整数才有效.
谢谢
我有一些列表包含DataTime类型的元素(Joda-time).我怎样才能按日期对它们进行排序?如果有人给出了这个例子的链接,那将会很棒......
java ×7
sorting ×4
collections ×2
arraylist ×1
comparable ×1
comparator ×1
date ×1
datetime ×1
integer ×1
linked-list ×1
string ×1
treemap ×1