Java学习笔记六
<a href="http://www.itheima.com" target="blank">android培訓</a>、<a href="http://www.itheima.com" target="blank">java培訓</a>、期待與您交流!?
1. 動態(tài)數(shù)組ArrayList:底層是其實是一個數(shù)組,加入的對象,取出時調(diào)用get方法輸出索引index.
2. 集合中大多數(shù)加入或者取出的對象都是Object類型的,但是八種原生數(shù)據(jù)類型并不是對象,要用他們各自的包裝類包裝成對象,例如Integer in = new Integer(3),這樣的話3就成為了一個對象,
public class IntegerTest
{
?? public static void main(String[] args)
?? {
????? Integer in = new Integer(3);
????? System.out.println(in);
?? }
}
打印的時候打印的是對象的toString方法,結(jié)果打印的是3,為什么會這樣呢?
其實當打印被包裝的對象時,打印的就是他們的包裝內(nèi)容,
注意要區(qū)分一下各個包裝類中都提供了類似intValue的方法,他的作用是輸出所包含的類型,如果上面的內(nèi)容改成 System。out.println(in.intValue());
結(jié)果也是一樣的;但是這時 int.intValue 就是一個真真正正的int類型的值了,也就是3,而in 只是對象,如果我們想打印 3+1,就只能用intValue方法來轉(zhuǎn)換
System.out.println((in.intVaule())+1);
打印結(jié)果是 4;
3. ArrayList中的 public int size()方法,返回集合中元素的個數(shù)。
4. public void clear():清空集合中的所有元素
5. ?publicbollean isEmpty(),判斷當前集合中元素是否為空。
6. public E? reMove(int index):清除指定索引內(nèi)容;后面索引向前進一。
7. public int indexOf(Object o):返回輸入元素內(nèi)容的索引;要是有相同元素怎么辦?
?? 測試程序:
package com.jianjian2;
?
import java.util.ArrayList;
?
public class ArrayListTest
{
?? public static void main(String[] args)
?? {
????? ArrayList list = new ArrayList();
????? list.add("a");
????? list.add("b");
????? list.add("c");
????? list.add("e");
????? System.out.println(list.size());
????? list.clear();
????? System.out.println(list.size());
????? System.out.println("-----------");
????? list.add("e");
????? list.add("b");
????? list.add("c");
????? list.add("e");
????? System.out.println(list);
????? list.remove(2);
????? System.out.println(list.get(2));
????? System.out.println(list.indexOf("e"));
8.累加集合中元素
?package com.jianjian2;
?
import java.util.ArrayList;
?
public class ArrayListTest2
{
?? public static void main(String[] args)
?? {
????? int sum = 0;
????? ArrayListlist = new ArrayList();
????? list.add(new Integer(3));
????? list.add(new Integer(4));
????? list.add(new Integer(6));
????? list.add(new Integer(1));
????? for(int i = 0; i < list.size(); i++)
????? {
??????? int value = ((Integer)list.get(i)).intValue();//注意類型的轉(zhuǎn)換;
??????? sum += value;
???????
???????
????? }
????? System.out.println(sum);
???????
???????
?? }
}
??
說明 ArrayList里面可以存放相同的元素,但是當查找時,已查到的第一個元素為準。
?????
?????
?????
?? }
}
?
?
8. 注意包裝類在生成對象時,必須要為構(gòu)造方法賦值,也就是必須要有包裝對象,new Integer(必須有數(shù)字);
9.
toString方法只能返回 String類型的數(shù)據(jù),但是當我們需要重寫toString方法時,要返回的數(shù)據(jù)類型不一定是String類型的,比如說整型,解決這個問題有兩種方式:
1):String類中提供了為八種原生類型的轉(zhuǎn)換形式,即public static string valueOf(int i)方法,雖然返回對象類型依然是String,但是輸出使我們想要的形式,該方法需要定義一個新的String對象,用來調(diào)用valueOf()方法;
publicString toString()
{
Strings = new String();
returns.valueOf(int i);
}
2):返回的內(nèi)容只要包含字符串,也就是混合型;
例如 return “最大數(shù)字=”+this.x;
也是可以運行的,而且很明了。
10.
利用Arrays.sort(數(shù)組名)方法,可以實現(xiàn)對數(shù)組的快速排序。
?
package com.jianjian2;
?
import java.util.Arrays;
?
public class ArrayTest
{
?? public static void main(String[] args)
?? {
????? int[] array = {3,1,5,2,1,6,7,8,5,3,2,3,4,5};
????? Arrays.sort(array);
????? for(int i = 0; i <array.length;i++)
????? {
??????? System.out.println(array[i]);
????? }
???????
?????
?? }
}
11.
雖然說集合中不能直接添加原聲數(shù)據(jù)類型,但是為什么不可以?我個人認為,是為了幫助類更方便的實現(xiàn)關于類中帶有索引的方法,比如說添加到指定位置、取出、例如 ArrayList 和 LinkedList中的
public void add(intindex);方法添加指定元素與指定位置;
public Objectget(int index);取出指定位置元素;
public Objectremove(int index),移除某元素;
12.
java.util包下提供了一個 Collections的類,類中為集合(Collection)提供了很多方法,包括排序,拷貝,轉(zhuǎn)換等等,比如說
package com.jianjian2;
?
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
?
public class CollectionsTest
{
?? public static void main(String[] args)
?? {
????? LinkedList list = new LinkedList();
????? list.add("f");
????? list.add("d");
????? list.add("a");
????? list.add("b");
????? list.add("c");
????? System.out.println(list);
????? Comparator r = Collections.reverseOrder();
//這里調(diào)用Collections中的reverseOrder();方法,方法返回一個Comparator類型,通常的來說Comparator類型都是提供的是比較方法;
那么這一步就是定義了一個反序比較方法“r”;
????? Collections.sort(list,r);//調(diào)用排序方法,前者為待排序的集合對象,后者為排序方法;
????? System.out.println(list);
?? }
}
13.
空null 可以被轉(zhuǎn)換成任何類型;
14.
利用 F2鍵可以修改類的名稱;
15.
遍歷HashMap的兩個方法,第一種,HashMap中提供了一種方法
public SetkeySet();作用是調(diào)用當前對象的 key 值集合;返回類型是Set型 ,Set型不能有重復元素,即key 值不能重復,
所以 我們 可以 Set set = map.keySet();這樣就將所有的 key 放進集合 Set里面,接著只要遍歷 Set ,用get(key)輸出;
又可以利用 集合中的 固有方法 iterator,一個個的取出Set;
package com.jianjian3;
?
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
?
public class MapTest2
{
?? public static void main(String[] args)
?? {
????? HashMap map = new HashMap ();
????? map.put("a","aa");
????? map.put("b","bb");
????? map.put("c","cc");
????? System.out.println(map);
????? Set set = map.keySet();
????? for(Iterator ite = set.iterator();ite.hasNext();)
????? {
??????? System.out.println(map.get(ite.next()));
????? }
???????
?? }
}
?
總結(jié)