1. 程式人生 > >JAVA比較(基本資料型別,物件型別)

JAVA比較(基本資料型別,物件型別)

    今天專門寫一個比較,因為在專案進展中,新人在工作中,總會出現一些看似很基礎,但有時往往需要深入研究的地方,有些知識點確實一般的書籍往往也可能會說的不是很細緻,今天我們就專門寫一篇文章來說說比較,舉個例子一般我們說,兩個人的年紀誰大,誰小,年紀一般是基本資料型別,整型,如小明今年30歲,小張今年25我們說小張比較年輕,我們是怎麼判斷的呢,我們是用年紀的差,即小明年齡減去小張年齡,如果大於0,說明小張年輕,如果小於0,說明小明年輕,如果等於0,說明同歲。這個例子很簡單,一說大家可能就明白了。但是如果我們要比較的是兩個字串呢,如兩個串aa="abc",bb="acc",是不是我們就需要一個規則來比較,就不能像之前數值可以直接比較了呢,java給我們提供了compareTo方法。

使用方法是語法:其返回的是一個int型別值。

Str1.compareTo(Str2); 
若Str1等於引數字串Str2字串,則返回0;

若該Str1按字典順序小於引數字串Str2,則返回值-1;

若Str1按字典順序大於引數字串Str2,則返回值1。

java中的compareto方法,返回參與比較的前後兩個字串的asc碼的差值,請看如下例項

1.如果兩個字串的首字母不同,則該方法返回首字母asc嗎的差。

2.如果兩個字串的首字母相同,則比較下一個字元,直到不同位置,返回該不同的字元的asc嗎的差。

3.如果兩個字串長度不一樣,但是可以比較的字元完全一一對應,則返回兩個字串的長度差。

以上這些就是主要的能比較的基本型別了。接下來我們說說物件型別的比較,物件型別的比較比較靈活,一般我們沒法像基礎型別這樣比較,因為物件屬性比較多,比如年齡,姓名,性別,顏色,高矮等等太多了,所以我們需要實現Comparator<T>來實現比較,但是比較又會使用到我們上訴的一些資訊,所以我們舉例來說說物件比較。

public class Anmial {

	private int age;
	private String name;
	private String address;

	public Anmial(int age, String name, String address) {
		this.age = age;
		this.name = name;
		this.address = address;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

}
public class Aaa {

	public static void main(String[] args) {
		List<Anmial> list = new ArrayList<Anmial>();
		Anmial s1 = new Anmial(20, "aa", "12");
		Anmial s2 = new Anmial(13, "bb", "31");
		Anmial s3 = new Anmial(17, "cc", "eq");
		Anmial s4 = new Anmial(10, "dd", "1312");
		list.add(s1);
		list.add(s4);
		list.add(s3);
		list.add(s2);

		Collections.sort(list, new Comparator<Anmial>() {

			@Override
			public int compare(Anmial o1, Anmial o2) {
				return o1.getAge()-o2.getAge();
			}

		});

		for (Anmial anmial : list) {
			System.out.println("age-" + anmial.getAge() + "-name-" + anmial.getName());
		}
		Collections.reverse(list);
		for (Anmial anmial : list) {
			System.out.println("age-" + anmial.getAge() + "-name-" + anmial.getName());
		}

	}

}
     好了,比較的內容基本整理完了,涉及的知識點也點到了,剩下的就可以自己補充了。







相關推薦

JAVA比較(基本資料型別物件型別)

    今天專門寫一個比較,因為在專案進展中,新人在工作中,總會出現一些看似很基礎,但有時往往需要深入研究的地方,有些知識點確實一般的書籍往往也可能會說的不是很細緻,今天我們就專門寫一篇文章來說說比較,舉個例子一般我們說,兩個人的年紀誰大,誰小,年紀一般是基本資料型別,整型

Java基本資料型別與包裝類字串轉換

儲存範圍大小: byte-short-char-int-long-float-double 低階到高階自動型別轉換: int i = 5; float f = i; double d = i; 高階到低階強制型別轉換: int a = 20; byte b = (byte) a;

Java為什麼基本資料型別不需要進行建立物件

Java是一門面向物件的語言,即一切皆是物件!那麼為何資料型別中還分為:基本型別和物件?         Java中有8種基本資料型別boolean、byte、short、char、int、flaot

JAVAjava資料儲存-基礎型別物件和字串

總所周知,java是一種面向物件的程式設計語言。在java裡,一切都被視為物件,因此可以採用單一固定的語法。儘管一切都看作物件,但是操縱的識別符號實際上是物件的一個“引用”,這個引用指向資料實際存放的地址。 而我們的資料被儲存到什麼地方呢?特別是記憶體是怎麼分配的呢?我們有

java基本資料型別與封裝類

部落格轉自https://blog.csdn.net/maggiedorami/article/details/7944459     Integer是一個類,是int的封裝類。 int是基本資料型別。 Integer就是把一個int型別的封裝成一個類。

JAVA學習|基本資料型別

JAVA學習|基本資料型別 這裡從變數和常量兩方面來說明Java中的基本資料型別。 變數 變數是記憶體中的容器,用於儲存與讀取資料,同樣也是程式中的最基本儲存單元,其要素包括變數名、變數型別、作用域。 變數必須先定義,後使用。 Java中定義了四類八種資料型別:

java基本資料型別 所佔有的位元組數

  Int: 4 位元組 Short: 2位元組 Long: 8位元組 Byte: 1位元組 Character: 2位元組 Float: 4位元組 Double: 8位元組 Boolean:系統沒有提供Size方法;   public class Ca

java保留基本資料型別的原因

        java中有8中基本資料型別,分別是boolean,char,byte,short,int,long,float,double這8種,但是我們可曾思考過,java明明是一種面向物件的語言,為什麼還要保留基本資料型別呢?   &nb

Java基本資料型別之間的轉換以及面試題

一、Java的基本資料型別有八種。 八種又分為三類  字元型別char, 布林型別boolean 數值型別byte、short、int、long、float、double。 數值型別又可以分為 整數型別byte、short、int、long 浮點數型別float

Java資料型別以及變數的定義 Java基本資料型別

1130136248   Java的基本資料型別 變數就是申請記憶體來儲存值。也就是說,當建立變數的時候,需要在記憶體中申請空間。 記憶體管理系統根據變數的型別為變數分配儲存空間,分配的

Java 八大基本資料型別

1. Java的簡單型別及其封裝器類 Java基本型別共有八種,基本型別可以分為三類,字元型別char,布林型別boolean以及數值型別byte、short、int、long、float、double。數值型別又可以分為整數型別byte、short、int、long和浮點

Java之——基本資料型別與byte陣列相互轉化

我們直接上程式碼 package cn.com.eteamsun.utils; import java.nio.charset.Charset; /** * Java基本資料型別和byte陣列相互轉化 * @author liuyazhuang * */ p

Java基本資料型別(8種還是9種)-yellowcong

今天看了一下部落格,發現有人說資料型別有9中, 一下子重新整理了我的世界觀,說好的8中基本資料型別,哪來的9種啊,後來發現 void 這孫子也是基本型別(PS:8種還是9種,都說法不一),《Think in Java》這本書上說是9 種,但是人家JAVA的

Java基本資料型別和引用資料型別的存放位置

基本資料型別是放在棧中還是放在堆中,這取決於基本型別宣告的位置。 一:在方法中宣告的變數,即使變數是區域性變數,每當程式呼叫方法時,系統都會為該方法建立一個方法棧,其所在方法中宣告的變數就放在方法棧中,當方法結束系統會釋放方法棧,其對應在該方法中宣告的變數隨著

java基本資料型別所佔的位元組數

byte 1位元組 short 2位元組 char 2位元組(C語言中是1位元組)可以儲存一個漢字 int 4位元組 long 8位元組

java基礎之java基本資料型別

java分為基本資料型別和引用資料型別。基本資料型別主演分為四類八種,引用資料型別分為介面,類,陣列,String。 基本資料型別的四類八種是: 整數型別:byte,short,int,long 資料型別 記憶體空間 儲存範圍 byte

JAVA基本資料型別和佔用記憶體空間大小

byte:1個位元組,8位,-128~127 最大儲存資料量 255short:2個位元組,16位,-32768~32767 最大儲存資料量 65535char:2個位元組,16位,儲存Unicode編碼,用‘’int:4個位元組,32位,負的2的31次方~2的31次方-1 

java基礎-基本資料型別包裝類中的一些坑

首先來看一段程式碼: class Demo_04 { public static void main(String[] args) { System.out.println(test(100,100)); System.out.println(test(5

java基礎——基本資料型別大小

學習了下大神的總結:https://www.cnblogs.com/TTTTT/p/6541270.html以下記錄了下自己想學習的部分!Java語言提供了八種基本型別。六種數字型別(四個整數型(預設是int 型),兩個浮點型(預設是double 型)),一種字元型別,還有一

Java基本資料型別與對應的包裝類和引用資料型別

基本資料型別變數儲存的是值,引用型別儲存的是物件的引用(物件的地址)。 基本資料型別不具有物件的特性,當有些地方必須要使用物件的時候,例如集合類(List,Set等),基本資料型別就不能使用了,所以Java提供了包裝類。基本資料型別可以進行加減乘除等運算,而包裝類提供了很多