java 编程思想 笔记_java编程思想笔记20170215
importjava.util.ArrayList;importjava.util.List;public classTest {public static voidmain(String[] args) {
List list = new ArrayList();
list.add("1");
list.add("2");
String[] tt=(String[]) list.toArray(new String[0]);
}
}
這段代碼是沒問題的,但我們看到String[] tt =(String[]) list.toArray(new String[0]) 中的參數(shù)很奇怪,然而去掉這個參數(shù)new String[0]卻在運行時報錯。。。
list.toArray()返回的是一個Object[]類型的,按理說,該容器中的元素已經(jīng)用泛型限制了,那里面的元素就應(yīng)該被當(dāng)作泛型類型的來看了,然而在目前的java中卻不是的,當(dāng)直接String[] tt =(String[]) list.toArray()時,運行報錯。原因是容器的類型已經(jīng)強制轉(zhuǎn)過來了,然而容器中的元素類型卻沒有轉(zhuǎn)過來,所以運行時報錯。
這是在看代碼(ListFeatures.java)擁有的一個疑問:
Pet[] pa = pets.toArray(new Pet[0]);
new Pet[0]僅僅就是一個類型提示的作用吧
另外, subList()所產(chǎn)生的列表的幕后就是初始列表,因此,對所返回的列表的修改都會反映到初始列表中,反之亦然。
例如,改變subList()返回列表的順序,原始列表相應(yīng)部分的順序也改變了
SortedSet接口
從TreeSet類的定義中可以發(fā)現(xiàn),TreeSet中實現(xiàn)了SortedSet接口,此接口主要用于排序操作,即實現(xiàn)此接口的子類都屬于排序的子類。SortedSet接口定義如下:
public?interface?SortedSet?extends?Set
發(fā)現(xiàn)此接口也繼承了Set接口。此接口中定義了如表13-7所示的方法。
表13-7? SortedSet接口中定義的方法
序號
方法
類型
描述
1
public Comparator
super E> comparator()
普通
返回與排序有關(guān)聯(lián)的比較器
2
public E first()
普通
返回集合中的第一個元素
3
public SortedSet headset
(E toElement)
普通
返回從開始到指定元素的集合
4
public E last()
普通
返回最后一個元素
5
public?SortedSet subSet
(E fromElement,E toElement)
普通
返回指定對象間的元素
6
public SortedSet tailSet
(E fromElement)
普通
從指定元素到最后
范例:驗證SortedSet接口
package?org.lxh.demo13.setdemo;
importjava.util.SortedSet;
importjava.util.TreeSet;
publicclassTreeSetDemo05?{
publicstaticvoidmain(String[]?args)?{
SortedSet?allSet?=?newTreeSet();???//?為SortedSet
實例化
allSet.add("A");?????????????????? //?增加元素
allSet.add("B");????????????????? //?增加元素
allSet.add("C");??????????????? //?增加元素
allSet.add("C");???????????????? //?重復(fù)元素,不能
加入
allSet.add("C");??????????????????? //?重復(fù)元素,不能加入
allSet.add("D");???????????????????? //?增加元素
allSet.add("E");?????????????????? //?增加元素
System.out.println("第一個元素:"+? allSet.first());
System.out.println("最后一個元素:"+?allSet.last());
System.out.println("headSet元素:"+ allSet.headSet("C"));
System.out.println("tailSet元素:"+?allSet.tailSet("C"));
System.out.println("subSet元素:"+?allSet.subSet("B","D"));
}
}
程序運行結(jié)果:
第一個元素:A
最后一個元素:E
headSet元素:[A,?B]
tailSet元素:[C,?D,?E]
subSet元素:[B,?C]
net.mindview.util包下的?文件讀寫工具類TextFile.java
//使用此工具類可以快速的實現(xiàn)讀取文件內(nèi)容到string,并封裝到ArrayList中;進(jìn)行一系列的操作之后,可以再講內(nèi)容寫入到文件中。
//使用此工具可以避免JavaIO中一些繁瑣的裝飾操作,簡化了編程
String s1 = "how are you";
String s2= "how are you";
String s3= new String("how are you");
String s4= new String("how are you");
System.out.println(s1== s2); //true
System.out.println(s3 == s4); //false
String s1 = "java";
String s2 = "java";
System.out.println(s1==s2); //true
System.out.println(s1.equals(s2)); //true
如果String緩沖池內(nèi)不存在與其指定值相同的String對象,那么此時虛擬機將為此創(chuàng)建新的String對象,并存放在String緩沖池內(nèi)。
如果String緩沖池內(nèi)存在與其指定值相同的String對象,那么此時虛擬機將不為此創(chuàng)建新的String對象,而直接返回已存在的String對象的引用。
總結(jié)
以上是生活随笔為你收集整理的java 编程思想 笔记_java编程思想笔记20170215的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下已修改但尚未保存_Linux
- 下一篇: java基础包的基本信息_JAVA 基础