Java提交oj題目基礎

今天用java寫了一道程序,發現與c++的寫法完全不同,廢了好長時間才寫出一道特別簡單的題目。

	1.基本數據類型,int,long,double,char,String,StringBuffer
	2.包裝類:Integer,Double,Character,Long
	
	基本數據類型和包裝類之間可以相互裝換,到時基本數據類型之間卻不
	可以相互轉換。
	int和long和double之間可以通過強制轉換進行轉換類型。
	int 和char可以強轉。
	除了Character包裝類,Integer,Long,Double都存在
	 包裝類.parseXXX(string)的方法吧字符串轉換
	String.valueOf( int )可以把整形轉換爲字符串
	可以通過string.toCharArray()的方法吧string類型的裝換爲字符數組
		數組.toString(),可以把數組轉換爲字符串。
	可以通過string.charAt(index)的方法轉換爲char類型
	可以通過stringBuffer.setCharAt(index, ch)和
	 stringBuffer.charAt(index)獲取和修改stringBuffer類型的變量
	
	compareTo()方法可以用來比較兩個字符串的內容是否相等。
	equals也可以比較兩個字符串是否相等,但是,如過兩個內容相等
	  地址不同,用equals也會認爲不同。

string.split()返回值是一個字符串數組

Java中的Scanner類中的方法next()與nextLine()都是吸取輸入控制檯輸入的字符
①next()方法不會吸取字符前和後的空格/Tab,只吸取字符,開始吸取字符(字符前後不算)
直到遇到空格/Tab/回車截取吸取
②nextLine()吸取字符前後的空格/Tab鍵,也會吸收回車符

讀取一個字符的技巧.next().charAt(0);

	對於基本數據類型的的排序直接調用Arrays中的sort方法進行排序即可。
	但是對於對象數組進行sort排序,需要用到comparable或者comparator接口。
	comparable可以認爲是一個內部比較器,實現comparable的對象數組需要
	重寫一下comparable中的compareTo方法。
public class GeRenInfo  implements Comparable<GeRenInfo>{
	
	private Integer sxny;//所屬年月
 
	@Override
	public String toString() {
		return "sxny=" + sxny ;
	}
 
	public int getSxny() {
		return sxny;
	}
	public void setSxny(int sxny) {
		this.sxny = sxny;
	}
 
	@Override
	public int compareTo(GeRenInfo o) {
		int sxny01=this.sxny;
		int sxny02=o.sxny;
		int i=0;
		if(sxny01> sxny02){
			  			i=1;
		}else if(sxny01<sxny02){
			  			i=-1;
		}
		return i;
		
	}
 
 
}
	comparator可以認爲是一個外部比較器,需要定義一個繼承comparator
	接口的類,並且重寫 一下方法compare,在是用sort排序時,調用一下即可。
import java.lang.reflect.Array;
import java.util.*;
public class Main {
	public static void main(String[] args) {
		Long[] a=new Long[100010];
		Arrays.fill(a, (long)0);
		Scanner scan=new Scanner(System.in);		
		int n=scan.nextInt();		
		for(int i=0;i<n;i++)
		{
			a[i]=scan.nextLong();
		}				
		Comparator cmp=new CMP();
		Arrays.sort(a,0,n,cmp);		
		for(int i=0;i<n;i++)
		System.out.print(a[i]+" ");
	}	
}
class CMP implements Comparator<Object>
{
	public int compare(Object o1, Object o2) {
		Long a=(long)o1;
		Long b=(Long)o2;
		if(a<b)
		return -1;
		else
		return 1;
	}	
}

集合的sort排序

對於常用的vector,list等也可以利用sort進行排序:
(1)list中的對象已經實現了Comparable接口,說明list中的那種對象是
可比較類型,支持自己和自己比較的,那麼可以直接調用 
Collections.sort(list);進行排序。例如常見的Integer,Float,Double類型等。
(2)如果list中的類沒有實現Comparable接口,則需要藉助外比較器,
實現 Comparator接口的類的對象

多組樣例輸入輸出
static Scanner in = new Scanner(System.in);
while(in.hasNextInt())
或者是
while(in.hasNext())

發佈了52 篇原創文章 · 獲贊 41 · 訪問量 7270
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章