说我有一个名为 <tbody>
@if (count($assets) > 0)
@foreach ($assets as $asset)
<tr data-entry-id="{{ $asset->id }}">
@can('asset_delete')
<td></td>
@endcan
<td field-key='title'>{{ $asset->title }}</td>
<td field-key='serial_number'>{{ $asset->serial_number }}</td>
<td field-key='barcode'>{{ $asset->barcode }}</td>
<td field-key='photo1'>@if($asset->photo1)<a href="{{ asset(env('UPLOAD_PATH').'/' . $asset->photo1) }}" target="_blank"><img src="{{ asset(env('UPLOAD_PATH').'/thumb/' . $asset->photo1) }}"/></a>@endif</td>
<td field-key='category'>{{ $asset->category->title ?? '' }}</td>
<td field-key='status'>{{ $asset->status->title ?? '' }}</td>
<td field-key='location'>{{ $asset->location->title ?? '' }}</td>
<td field-key='assigned_user'>{{ $asset->assigned_user->name ?? '' }}</td>
<td field-key='vendor'>{{ $asset->vendor->name ?? '' }}</td>
<td field-key='purchase_price'>{{ $asset->purchase_price }}</td>
<td field-key='warranty'>{{ $asset->warranty }}</td>
<td field-key='depreciation'>{{ $netprice }}</td>
<td>
的类。
Person
我有一个7、2、9、4和17岁的人的名单。 我想按给定值的Person年龄的绝对差异按升序对Person对象列表进行排序。
例如,我要根据人员年龄与给定年龄(例如7岁)的绝对差值对人员进行排序。
结果将是年龄为class Person(){
private int age;
}
的人员对象列表。
这是因为
7, 9, 4, 2, 17
如您所见,我想根据给定值的绝对差(此值并不总是相同)对Persons Objects列表进行排序。
答案 0 :(得分:2)
List<Person> people = ...;
people.sort(Comparator.comparingInt(p -> Math.abs(7 - p.getAge())));
答案 1 :(得分:1)
您可以创建一个这样的比较器类:
public class MyComparator implements Comparator<Person> {
private final int refAge;
public MyComparator(int refAge) {
this.refAge = refAge;
}
@Override
public int compare(Person p1, Person p2) {
return Integer.compare(Math.abs(p1.getAge()-refAge),
Math.abs(p2.getAge()-refAge));
}
}
然后使用它对列表进行排序:
List<Person> persons = ...;
Collections.sort(persons, new MyComparator(7));