「java属性顺序」java类属性初始化顺序
今天给各位分享java属性顺序的知识,其中也会对java类属性初始化顺序进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
Java类的可比较属性的多个排序
我知道你想从程序设计的角度去考虑问题,但是一般都有个个人认知的局限,程序设计鼓励思考,但是也同样有些规则,比如类和方法的单一功能性。复杂问题可以多步解决,不是一部就是最好的,你可以一步调用一个排序方法,对外只能看到这个方法,但是你内部解决各个排序的时候是调用不同的实现排序接口的类,这样以后维护起来阅读和修改都非常清楚。
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class goTest1 {
public static ListPerson sortBy(ListPerson list,String key){
if(key == "Height"){
list.sort(new sortByHeight());
}
//自己写其他的
return list;
}
public static void main(String[] agrs){
Person A = new Person("Alex","001", 180.2, 160, 6000);
Person B = new Person("Tom","002", 160.2, 180, 2000);
Person C = new Person("Jerry","003",171.2, 170, 3000);
Person D = new Person("Bob","004", 150.2, 120, 6200);
ListPerson list = new ArrayListPerson();
list.add(A);
list.add(B);
list.add(C);
list.add(D);
for(Person p:list){
System.out.println(p.name);
}
System.out.println();
// list.sort(new sortByHeight());
goTest1.sortBy(list, "Height");
for(Person p:list){
System.out.println(p.name);
}
}
}
class sortByHeight implements ComparatorPerson{
@Override
public int compare(Person arg0, Person arg1) {
return Double.compare(arg0.height, arg1.height);
}
}
class Person{
String name;
String id;
double height;
double weight;
double income;
public Person(String name, String id, double height, double weight,
double income) {
super();
this.name = name;
this.id = id;
this.height = height;
this.weight = weight;
this.income = income;
}
}
Java中对象按照属性排序
项目中经常需要用到比如地区列表按照中文的拼音首字母排序 但是有时候获取到的地区列表是对象的形式 有地区id 地区名称两个属性 这里主要涉及到两个技术点
对象按属性排序 中文按拼音首字母排序 下面给出自己整理好的demo:
import java text Collator;
import java util ArrayList;
import java util Collections;
import java util Comparator;
import mons beanutils BeanComparator;
import llections ComparatorUtils;
import parators ComparableComparator;
import parators ComparatorChain;
public class CompareTipA {
private int id;
private String name;
private String age;
@SuppressWarnings( unchecked )
public static void main(String []args) {
ArrayListObject list = new ArrayListObject()
list add(new CompareTipA( 五 ))
list add(new CompareTipA( 六 ))
list add(new CompareTipA( 二 ))
list add(new CompareTipA( 四 ))
list add(new CompareTipA( 四 ))
list add(new CompareTipA( 一 ))
Comparator mycmp = ComparableComparator getInstance()
mycmp = ComparatorUtils nullLowComparator(mycmp)
//允许null
mycmp = ComparatorUtils reversedComparator(mycmp) //逆序
ArrayListObject sortFields = new ArrayListObject()
ComparatorObject parator=Collator getInstance(java util Locale CHINA)
sortFields add(new BeanComparator( name parator)) //name正序 (主)
sortFields add(new BeanComparator( id mycmp))
//id逆序 (副)
ComparatorChain multiSort = new ComparatorChain(sortFields)
Collections sort(list multiSort)
for (int i = ;ilist size() i++) {
System out println(list get(i))
//输出 /*
[id= name=二 age= ]
[id= name=六 age= ]
[id= name=四 age= ]
[id= name=四 age= ]
[id= name=五 age= ]
[id= name=一 age= ]*/
}
}
public CompareTipA(int id String age String name) {
this id = id;
this name = name;
this age = age;
}
public int getId() {
return this id;
}
public void setId(int id) {
this id = id;
}
public String getName() {
return this name;
}
public void setName(String name) {
this name = name;
}
//
public int pareTo(Object o) { //
return pare(this o) // }
public String toString() {
return [id= + this id + name= + this name + age= + this age + ] ;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this age = age;
} }
注意 需要导入的三个包 mons beanutils jar
mons collections jar
mons logging jar
lishixinzhi/Article/program/Java/hx/201311/25790
java中如何进行属性值排序
不太明白什么意思
如果是对象数组排序
java.util.Arrays.sort(要排序的数组,排序算法);
java属性顺序的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java类属性初始化顺序、java属性顺序的信息别忘了在本站进行查找喔。