冒泡

package com.bjsxt.sort.bubble;

import java.util.Arrays;

public class BubbleSort1 {

    /**
* @param args
*/
public static void main(String[] args) {
int[] arr ={9,8,7,6,5};
sort(arr); }
//第一版本,很简单
public static void sort(int[] arr){
int len =arr.length;
for(int j=0;j<len-1;j++){
System.out.println("第"+(j+1)+"趟");
for(int i=0;i<len-1;i++){
System.out.print("第"+(i+1)+"次");
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] =arr[i+1];
arr[i+1] =temp;
}
System.out.println(Arrays.toString(arr));
}
}
}
public static void sortSecond(int[] arr){
System.out.println("第一趟");
for(int i=0;i<arr.length-1;i++){
System.out.print("第"+(i+1)+"次");
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] =arr[i+1];
arr[i+1] =temp;
}
System.out.println(Arrays.toString(arr));
}
System.out.println("第二趟");
for(int i=0;i<arr.length-1;i++){
System.out.print("第"+(i+1)+"次");
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] =arr[i+1];
arr[i+1] =temp;
}
System.out.println(Arrays.toString(arr));
}
System.out.println("第三趟");
for(int i=0;i<arr.length-1;i++){
System.out.print("第"+(i+1)+"次");
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] =arr[i+1];
arr[i+1] =temp;
}
System.out.println(Arrays.toString(arr));
}
System.out.println("第四趟");
for(int i=0;i<arr.length-1;i++){
System.out.print("第"+(i+1)+"次");
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] =arr[i+1];
arr[i+1] =temp;
}
System.out.println(Arrays.toString(arr));
} } public static void sortFirst(int[] arr){
System.out.println("第一趟");
for(int i=0;i<arr.length-1;i++){
System.out.print("第"+(i+1)+"次");
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] =arr[i+1];
arr[i+1] =temp;
}
System.out.println(Arrays.toString(arr));
} /*
//第一趟 第一次
System.out.println("第一趟 第一次");
int i=0;
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] =arr[i+1];
arr[i+1] =temp;
}
System.out.println(Arrays.toString(arr));
System.out.println("第一趟 第二次");
i++;
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] =arr[i+1];
arr[i+1] =temp;
}
System.out.println(Arrays.toString(arr)); System.out.println("第一趟 第三次");
i++;
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] =arr[i+1];
arr[i+1] =temp;
}
System.out.println(Arrays.toString(arr)); System.out.println("第一趟 第四次");
i++;
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] =arr[i+1];
arr[i+1] =temp;
}
System.out.println(Arrays.toString(arr)); */
} }
package com.bjsxt.sort.bubble;

import java.util.Arrays;

public class BubbleSort2 {

    /**
* @param args
*/
public static void main(String[] args) {
int[] arr ={9,8,7,6,5};
sort(arr);
}
//第二版本,减少每一趟的次数
public static void sort(int[] arr){
int len =arr.length;
for(int j=0;j<len-1;j++){ //趟数
System.out.println("第"+(j+1)+"趟");
for(int i=0;i<len-1-j;i++){ //次数
System.out.print("第"+(i+1)+"次");
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] =arr[i+1];
arr[i+1] =temp;
}
System.out.println(Arrays.toString(arr));
}
}
} }
package com.bjsxt.sort.bubble;

import java.util.Arrays;

/**
* 最终版本:考虑存在顺序
* @author Administrator
*
*/
public class BubbleSort { /**
* @param args
*/
public static void main(String[] args) {
int[] arr ={1,2,9,3,4};
sort1(arr); System.out.println("==========final============");
arr =new int[]{9,1,2,3,4};
sortFinal(arr);
}
//第二版本,减少每一趟的次数
public static void sortFinal(int[] arr){
boolean sorted= true;
int len =arr.length;
for(int j=0;j<len-1;j++){ //趟数
sorted =true; //假定有序
for(int i=0;i<len-1-j;i++){ //次数
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] =arr[i+1];
arr[i+1] =temp;
sorted =false; //假定失败
}
System.out.println(Arrays.toString(arr));
}
if(sorted){ //减少趟数
break;
}
}
} //第二版本,减少每一趟的次数
public static void sort1(int[] arr){
int len =arr.length;
for(int j=0;j<len-1;j++){ //趟数
System.out.println("第"+(j+1)+"趟");
for(int i=0;i<len-1-j;i++){ //次数
System.out.print("第"+(i+1)+"次");
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] =arr[i+1];
arr[i+1] =temp;
}
System.out.println(Arrays.toString(arr));
}
}
} }

引用数据类型:

1.整数小数Integer Float Double直接比较基本数据类型的大小

2.比较unicode码之差

3.字符串:

package com.bjsxt.sort.innerType;
/**
* 内置引用数据类型(常用)的比较
* @author Administrator
*
*/
public class Demo01 { /**
* @param args
*/
public static void main(String[] args) {
Integer a ; //根据基本数据类型大小
Character ch; //根据Unicode编码顺序
String str="abc"; //如果其中一个是例外一个起始开始的子串,返回长度之差
String str2 ="abcd123"; //否则返回第一个不相等的unicode码之差
System.out.println(str.compareTo(str2));
str ="abc";
str2 ="aad";
System.out.println(str.compareTo(str2)); java.util.Date d ; //根据日期的长整形数比较
} }

字符串的冒泡:

/**
* @param args
*/
public static void main(String[] args) {
String[] arr ={"a","abcd","abc","def"};
//从到小排序 降序
boolean sorted= true;
int len =arr.length;
for(int j=0;j<len-1;j++){ //趟数
sorted =true; //假定有序
for(int i=0;i<len-1-j;i++){ //次数
if(((Comparable)arr[i]).compareTo(arr[i+1])<0){
String temp = arr[i];
arr[i] =arr[i+1];
arr[i+1] =temp;
sorted =false; //假定失败
}
}
if(sorted){ //减少趟数
break;
}
} System.out.println(Arrays.toString(arr));
}

时间的冒泡:

/**
* @param args
*/
public static void main(String[] args) {
Date[] arr =new Date[3];
arr[0] =new Date();
arr[1] =new Date(System.currentTimeMillis()-1000*60*60);
arr[2] =new Date(System.currentTimeMillis()+1000*60*60);
//降序 //从大到小排序 降序
boolean sorted= true;
int len =arr.length;
for(int j=0;j<len-1;j++){ //趟数
sorted =true; //假定有序
for(int i=0;i<len-1-j;i++){ //次数
if(((Comparable)arr[i]).compareTo(arr[i+1])<0){
Date temp = arr[i];
arr[i] =arr[i+1];
arr[i+1] =temp;
sorted =false; //假定失败
}
}
if(sorted){ //减少趟数
break;
}
} System.out.println(Arrays.toString(arr));
}

封装+泛型之后:

package com.bjsxt.sort.innerType;

import java.util.Comparator;
import java.util.List; /**
* 排序
* @author Administrator
*
*/
public class Utils {
/**
* List的排序+比较器
* @param list
* @param com
*/
public static <T> void sort(List<T> list,Comparator<T> com){
//第一步:转成数组
Object[] arr =list.toArray();
sort(arr,com);
//第二步:改变容器中对应的值
for(int i=0;i<arr.length;i++){
list.set(i, (T)(arr[i]));
}
} /**
* 数组的排序 (降序)+Comparator接口
* @param arr
*/
public static <T> void sort(Object[] arr,Comparator<T> com){
//从大到小排序 降序
boolean sorted= true;
int len =arr.length;
for(int j=0;j<len-1;j++){ //趟数
sorted =true; //假定有序
for(int i=0;i<len-1-j;i++){ //次数
if(com.compare((T)arr[i], (T)arr[i+1])<0){
Object temp = arr[i];
arr[i] =arr[i+1];
arr[i+1] =temp;
sorted =false; //假定失败
}
}
if(sorted){ //减少趟数
break;
}
}
} /**
* 容器排序 (使用泛型方法)
*/
public static <T extends Comparable<T>> void sort(List<T> list){
//第一步:转成数组
Object[] arr =list.toArray();
sort(arr);
//第二步:改变容器中对应的值
for(int i=0;i<arr.length;i++){
list.set(i, (T)(arr[i]));
} } /**
* 数组排序 (使用泛型方法)
*/
public static <T extends Comparable<T>> void sort(T[] arr){
//从大到小排序 降序
boolean sorted= true;
int len =arr.length;
for(int j=0;j<len-1;j++){ //趟数
sorted =true; //假定有序
for(int i=0;i<len-1-j;i++){ //次数
if(((Comparable)arr[i]).compareTo(arr[i+1])<0){
T temp = arr[i];
arr[i] =arr[i+1];
arr[i+1] =temp;
sorted =false; //假定失败
}
}
if(sorted){ //减少趟数
break;
}
}
} /**
* 数组的排序 (降序)
* @param arr
*/
public static void sort(Object[] arr){
//从大到小排序 降序
boolean sorted= true;
int len =arr.length;
for(int j=0;j<len-1;j++){ //趟数
sorted =true; //假定有序
for(int i=0;i<len-1-j;i++){ //次数
if(((Comparable)arr[i]).compareTo(arr[i+1])<0){
Object temp = arr[i];
arr[i] =arr[i+1];
arr[i+1] =temp;
sorted =false; //假定失败
}
}
if(sorted){ //减少趟数
break;
}
} } }

实例:

package com.bjsxt.sort.innerType;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List; public class Demo04 { /**
* @param args
*/
public static void main(String[] args) {
Date[] arr =new Date[3];
arr[0] =new Date();
arr[1] =new Date(System.currentTimeMillis()-1000*60*60);
arr[2] =new Date(System.currentTimeMillis()+1000*60*60);
Utils.sort(arr); //降序
System.out.println(Arrays.toString(arr)); //字符串
String[] arr2 ={"a","abcd","abc","def"};
Utils.sort(arr2);
System.out.println(Arrays.toString(arr2)); System.out.println("==========List排序===========");
//存放容器中
List<String> list =new ArrayList<String>();
list.add("a");
list.add("abcd");
list.add("abc");
list.add("def");
Utils.sort(list);
System.out.println(list); System.out.println("==========使用Comparator 排序数组===============");
arr2 =new String[]{"a","abcd","abc","def"};
Utils.sort(arr2,new StringComp());
System.out.println(Arrays.toString(arr2)); System.out.println("==========List排序+比较器===========");
list =new ArrayList<String>();
list.add("a");
list.add("abcd");
list.add("abc");
list.add("def");
Utils.sort(list,new StringComp());
System.out.println(list); } }

方法而:实现java.util.Comparator接口

package com.bjsxt.sort.innerType;
/**
* 排序规则的业务类
* @author Administrator
*
*/
public class StringComp implements java.util.Comparator<String>{ /**
* 按长度比较大小
* 正数 >
* 负数 <
* 0 ==
*/
@Override
public int compare(String o1, String o2) {
int len1 =o1.length();
int len2 =o2.length();
return -(len1-len2);
} }
package com.bjsxt.sort.innerType;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List; /**
* 使用Collections对容器的比较
* 1、 public static <T> void sort(List<T> list, Comparator<? super T> c)
* 2、public static <T extends Comparable<? super T>> void sort(List<T> list)
* void sort(List<T> list)
* @author Administrator
*
*/
public class Demo05 { /**
* @param args
*/
public static void main(String[] args) {
List<String> list =new ArrayList<String>();
list.add("a");
list.add("abcd");
list.add("abc");
list.add("def");
Collections.sort(list,new StringComp());
System.out.println(list); list =new ArrayList<String>();
list.add("a");
list.add("abcd");
list.add("abc");
list.add("def");
Collections.sort(list);
System.out.println(list); } }

新闻条目的排序:

package com.bjsxt.sort.refType;

import java.text.SimpleDateFormat;
import java.util.Date; /**
* 新闻条目实体类
* @author Administrator
*
*/
public class NewsItem implements java.lang.Comparable<NewsItem>{
//标题
private String title;
//点击量
private int hits;
//时间
private Date pubTime;
public NewsItem() {
} public NewsItem(String title, int hits, Date pubTime) {
super();
this.title = title;
this.hits = hits;
this.pubTime = pubTime;
} public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getHits() {
return hits;
}
public void setHits(int hits) {
this.hits = hits;
}
public Date getPubTime() {
return pubTime;
}
public void setPubTime(Date pubTime) {
this.pubTime = pubTime;
} //时间降序 +点击量升序+标题降序
@Override
public int compareTo(NewsItem o) {
int result =0;
//比较 时间
result =-this.pubTime.compareTo(o.pubTime); //降序
if(0==result){ //时间相同
//点击量
result =this.hits-o.hits; //升序
if(0==result){ //点击量相同
//标题
result=-this.title.compareTo(o.title);//降序
}
} return result;
} @Override
public String toString() {
StringBuilder sb =new StringBuilder();
sb.append("标题:").append(this.title);
sb.append(",时间:").append(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.pubTime));
sb.append(",点击量:").append(this.hits).append("\n");
return sb.toString();
} }
package com.bjsxt.sort.refType;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List; import com.bjsxt.sort.innerType.Utils; /**
* 使用Collections
* @author Administrator
*
*/
public class NewsItemApp { /**
* @param args
*/
public static void main(String[] args) {
List<NewsItem> news=new ArrayList<NewsItem>();
news.add(new NewsItem("美国后怕了,逃跑了悲剧了",50,new Date(System.currentTimeMillis()-1000*60*60)));
news.add(new NewsItem("中国登上钓鱼岛了,全国欢呼了",100,new Date()));
news.add(new NewsItem("小日本终于听话了,泪流满面笑了",60,new Date(System.currentTimeMillis()-1000*60*60)));
System.out.println("排序前:"+news);
//排序
//Collections.sort(news);
Utils.sort(news);
System.out.println("排序后"+news); } }

商品的排序:

package com.bjsxt.sort.refType;
/**
* 实体类
* @author Administrator
*
*/
public class Goods {
//商品名称
private String name;
//价格
private double price;
//收藏量
private int fav;
public Goods() {
// TODO Auto-generated constructor stub
} public Goods(String name, double price, int fav) {
super();
this.name = name;
this.price = price;
this.fav = fav;
} public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getFav() {
return fav;
}
public void setFav(int fav) {
this.fav = fav;
} @Override
public String toString() {
return "商品名:"+name+",收藏量"+this.fav+",价格:"+this.price+"\n";
}
}
package com.bjsxt.sort.refType;
/**
* 按价格排序的业务类 (降序)
* @author Administrator
*
*/
public class GoodsPriceComp implements java.util.Comparator<Goods> { @Override
public int compare(Goods o1, Goods o2) {
return -(o1.getPrice()-o2.getPrice()>0?1:(o1.getPrice()==o2.getPrice()?0:-1));
} }
package com.bjsxt.sort.refType;
/**
* 按收藏量排序的业务类 (升序)
* @author Administrator
*
*/
public class GoodsFavComp implements java.util.Comparator<Goods> { @Override
public int compare(Goods o1, Goods o2) {
return o1.getFav()-o2.getFav();
} }
package com.bjsxt.sort.refType;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List; public class GoodsApp { /**
* @param args
*/
public static void main(String[] args) {
List<Goods> list =new ArrayList<Goods>();
list.add(new Goods("老马视频",100,2000));
list.add(new Goods("老高视频",50,2000));
list.add(new Goods("老裴视频",1000,1000));
System.out.println("排序前:"+list);
// Collections.sort(list,new GoodsPriceComp());
Collections.sort(list,new GoodsFavComp());
System.out.println("排序后:"+list);
} }

TreeSet:

注意:在添加数据是排序,数据更改不会影响原来的属性

package com.bjsxt.sort.col;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List; public class Person {
private final String name;//名称
private final int handsome;//帅气指数 public Person() {
name =null;
handsome =0;
} public Person(String name, int handsome) {
super();
this.name = name;
this.handsome = handsome;
} public String getName() {
return name;
} public int getHandsome() {
return handsome;
} @Override
public String toString() {
return "姓名:"+this.name+",帅气指数:"+this.handsome+"\n";
} }
package com.bjsxt.sort.col;

import java.util.Set;
import java.util.TreeMap; public class TreeMapDemo { /**
* @param args
*/
public static void main(String[] args) {
Person p1 =new Person("您",100);
Person p2 =new Person("刘德华",1000);
Person p3 =new Person("梁朝伟",1200);
Person p4 =new Person("老裴",50); TreeMap<Person,String> map =new TreeMap<Person,String>(new java.util.Comparator<Person>(){ @Override
public int compare(Person o1, Person o2) {
return -(o1.getHandsome()-o2.getHandsome());
} } );
map.put(p1, "bjsxt");
map.put(p2, "bjsxt");
map.put(p3, "bjsxt");
map.put(p4, "bjsxt"); //查看键
Set<Person> persons =map.keySet();
System.out.println(persons);
} }
package com.bjsxt.sort.col;

public class Worker implements java.lang.Comparable<Worker> {
//工种
private String type;
//工资
private double salary;
public Worker() {
// TODO Auto-generated constructor stub
} public Worker(String type, double salary) {
super();
this.type = type;
this.salary = salary;
} public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
} /**
* 按工资升序
*/
@Override
public int compareTo(Worker o) {
return this.salary>o.salary?1:( this.salary==o.salary?0:-1);
} @Override
public String toString() {
return "工种:"+this.type+",工资:"+this.salary+"\n";
} }
package com.bjsxt.sort.col;

import java.util.TreeSet;
/**
* 实体类实现Comparable 接口的应用
* @author Administrator
*
*/
public class TreeSetDemo2 { /**
* @param args
*/
public static void main(String[] args) {
Worker w1 =new Worker("垃圾回收员",12000);
Worker w2 =new Worker("农民工",8000);
Worker w3 =new Worker("程序猿",5000); TreeSet<Worker> employees =new TreeSet<Worker>();
employees.add(w1);
employees.add(w2);
employees.add(w3);
System.out.println(employees); } }

TreeMap:

package com.bjsxt.sort.col;

import java.util.Set;
import java.util.TreeMap; public class TreeMapDemo { /**
* @param args
*/
public static void main(String[] args) {
Person p1 =new Person("您",100);
Person p2 =new Person("刘德华",1000);
Person p3 =new Person("梁朝伟",1200);
Person p4 =new Person("老裴",50); TreeMap<Person,String> map =new TreeMap<Person,String>(new java.util.Comparator<Person>(){ @Override
public int compare(Person o1, Person o2) {
return -(o1.getHandsome()-o2.getHandsome());
} } );
map.put(p1, "bjsxt");
map.put(p2, "bjsxt");
map.put(p3, "bjsxt");
map.put(p4, "bjsxt"); //查看键
Set<Person> persons =map.keySet();
System.out.println(persons);
} }
package com.bjsxt.sort.col;

import java.util.TreeMap;

public class TreeMapDemo02 {

    /**
* @param args
*/
public static void main(String[] args) {
Worker w1 =new Worker("垃圾回收员",12000);
Worker w2 =new Worker("农民工",8000);
Worker w3 =new Worker("程序猿",5000); TreeMap<Worker,String > employees =new TreeMap<Worker,String >();
employees.put(w1,"bjsxt");
employees.put(w2,"bjsxt");
employees.put(w3,"bjsxt");
System.out.println(employees.keySet());
} }

Collections 的相关方法:

package com.bjsxt.sort.util;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List; /**
*1、 binarySearch(List<? extends Comparable<? super T>> list, T key) 容器有序
*2、sort(List<T> list)
sort(List<T> list, Comparator<? super T> c)
*3、reverse(List<?> list)
4、shuffle(List<?> list) 洗牌
5、swap(List<?> list, int i, int j)
* @author Administrator
*
*/
public class CollectionsDemo01 { /**
* @param args
*/
public static void main(String[] args) {
List<Integer> cards =new ArrayList<Integer>();
//shuffle 洗牌 模拟斗地主
for(int i=0;i<54;i++){
cards.add(i);
}
//洗牌
Collections.shuffle(cards) ;
//依次发牌
List<Integer> p1 =new ArrayList<Integer>();
List<Integer> p2 =new ArrayList<Integer>();
List<Integer> p3 =new ArrayList<Integer>();
List<Integer> last =new ArrayList<Integer>();
for(int i=0;i<51;i+=3){
p1.add(cards.get(i));
p2.add(cards.get(i+1));
p3.add(cards.get(i+2));
}
//最后三张为底牌
last.add(cards.get(51));
last.add(cards.get(52));
last.add(cards.get(53)); System.out.println("第一个人:"+p1);
System.out.println("第二个人:"+p2);
System.out.println("第三个人:"+p3);
System.out.println("底牌为:"+last); }
//反转
public static void test1(){
List<Integer> list =new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
System.out.println(list);
Collections.reverse(list);
System.out.println("反转之后"+list);
}
}

Collection_Compare的更多相关文章

随机推荐

  1. Linux内核学习方法

    Makefile不是Make Love 从前在学校,混了四年,没有学到任何东西,每天就是逃课,上网,玩游戏,睡觉.毕业的时候,人家跟我说Makefile我完全不知,但是一说Make Love我就来劲了 ...

  2. ubuntu12.04之后该死的文件关联

    这是抱怨贴~~~当然也提供了解决方法~敬请期待. 这个帖子中我们介绍如何在ubuntu下安装quartus II 13.1,安装完毕功能正常,但是有个“小问题”就是如何在文件管理器中(这里是nauti ...

  3. SharePoint 101 Code Samples are now available

    The Microsoft Office Developer Center has created 101 code samples for SharePoint 2010. These sample ...

  4. 把NodeJS注册成Windows服务

    为了让NodeJS开发的网站能在服务器端正常运行,最好把NodeJS需要运行的代码注册成Windows服务,服务器如果重启也不需要重新去启动NodeJS. 1.编写一个执行NodeJS脚本的bat文件 ...

  5. 微信小程序、应用号、订阅号、服务号、企业号小总结

    微信小程序是现在微信推出的一个新的项目,但是很多人都不是很清楚微信小程序是怎么一回事,不明白到底怎样分别微信小程序和别的公众号.订阅号等的区别,那么让小编来给你介绍一下. 微信小程序目前是内侧阶段,是 ...

  6. 不借助jquery封装好的ajax,你能用js手写ajax框架吗

    不借助jquery封装好的ajax,你能手写ajax框架吗?最基础的ajax框架,一起来围观吧. .创建XMLHttpRequest对象 var xhr = new XMLHttpRequest(); ...

  7. Flash设置全屏后,放到网页中显示不正常

    stage.displayState = StageDisplayState.FULL_SCREEN;//全屏,注意当设置全屏后,放到网页中显示不正常

  8. C# WinForm开发系列 - ZedGraph

    ZedGraph是用于创建任意数据的二维线型.条型.饼型图表的一个类库,也可以作为Windows窗体用户控件和Asp.Net网页控件.这个类库具有高度的适应性,几乎所有式样的图表都能够被创建.这个类库 ...

  9. C++ 面试题整理

    我和朋友们面到的c++试题整理 虚表 static const sizeof 可构造不可继承的类 stl Iterator失效 map vector vector的removed_if 优化 ---- ...

  10. 【Asp.net MVC ---杂七杂八】

    @RenderSection 母模板:_mainLayout.cshtml <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitio ...