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())

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值