日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

包,内部类,常用类,集合

發布時間:2023/12/8 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 包,内部类,常用类,集合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

包--package

分包

實際開發中,用的都是多級包(不同的包下放不同的代碼)

? ? ? ? ? ? ? ? 公司域名反寫(中間加"."隔開)

? ? ? ? 包名:

? ? ? ? ? ? ? ? service------業務層代碼:邏輯判斷

? ? ? ? ? ? ? ? dao(data access object)-----數據訪問層代碼

????????????????pojo/entity/domain------一些實體類(放事物的一些屬性)

? ? ? ? ? ? ? ? test------測試類(main方法所在)

? ? ? ? ? ? ? ? control/web------前后端交互

權限修飾符的范圍?

?形式參數:類,具體類或者抽象類 接 口以及返回值問題--->具體類/抽象 類/接口類型

形式參數:

情況1:方法的形式參數是一個具體類,調用該方法實際參數如何傳遞

需要傳遞一個具體的類對象

?代碼體現

class Student{ public void study(){ System.out.println("學習JavaEE之JavaSE基礎"); } } class StudentDemo{ public void method(Student student){//形式參數一個引用類型:具體類,調用該 方法,實際參數需要一個學生對象 student.study() ; } } //測試類中測試 //調用StudentDemo類的method方法 //創建StudentDemo類對象 StudentDemo sd = new StudentDemo() ; //調用該方法,實際參數需要一個學生對象 Student s = new Student() ; sd.method(s); //實際參數s

?情況2:方法的形式參數是一個抽象類,調用該方法實際參數如何傳遞

傳遞一個抽象類的具體的子類對象

代碼體現?

abstract class Person{//人類 public abstract void work(); //工作 } class PersonDemo{ //成員方法 public void show(Person p){//形式參數是一個抽象類,抽象類不能實例化,需要 new 它的子類對象 抽象類多態 p.work() ; } } //必須提供子類 //只能現在提供抽象類的具體的子類 class Worker extends Person{ @Override public void work() { System.out.println("愛生活,愛工作,愛高圓圓"); } } //測試類中測試 PersonDemo pd = new PersonDemo() ; //創建Person對象 //Person p = new Person(); 抽象類不能實例化 // pd.show(p); //抽象類多態 Person p = new Worker() ; pd.show(p); System.out.println("-----------------------------------------"); //匿名對象 pd.show(new Worker());

情況3:?方法的形式參數是一個接口,調用該方法實際參數如何傳遞

實際參數傳遞的是該接口的子實現類對象?

代碼體現

interface Love{ void love() ; } class LoveDemo{ public void function(Love lo){ //方法形式參數是一個接口類型,接口new不了 lo.love(); } } //需要提供具體的子實現類 class LoveImpl implements Love{ @Override public void love() { System.out.println("love loveImpl..."); } } //測試類中測試 //調用LoveDemo類的中的function方法 //創建LoveDemo類對象 LoveDemo ld = new LoveDemo() ; //創建Love對象 //Love love = new Love() ;//接口不能實例化,肯定需要接口的子實現類 //ld.function(love); //接口多態的方式:接口名 對象名 = new 具體的子實現類名() ; Love love = new LoveImpl() ; ld.function(love); //方式2: ld.function(new LoveImpl()) ;

返回值問題?

情況1 方法返回值類型是一個具體類,如何返回

需要返回當前類的具體類對象

代碼體現?

//學生類 class Student{ public void study(){ System.out.println("正在學習JavaEE"); } } //StudentDemo class StudentDemo{ public Student method(){//這個的返回值是一個引用類型,具體類---方法結束, 必須返回一個當前類的具體類對象 // 如何結束??? //return Student; //方式1 : /*Student s = new Student() ; return s;*/ //方式2:匿名對象的格式 return new Student() ; } } //測試類 //調用StudentDemo這個類里面的method方法 StudentDemo sd = new StudentDemo() ; Student s = sd.method(); // 這個方法的本質: new Student(); s.study() ;

情況2:?方法返回值類型是一個抽象類, 如何返回

返回的是該抽象類的子類對象

代碼體現

//抽象類 abstract class Person{ public abstract void work(); } class PersonDemo { public Person show(){ //方法的返回值是一個抽象類,必須要提供抽象類子類 //?? /* Person p = new Person() ;//抽象類不能new return p ;*/ //return new Person() ; //需要抽象類的子類對象:抽象類多態 //方式1:抽象類多態 /* Person p = new Programmer() ; return p;*/ //方式2:匿名對象 return new Programmer() ; } } //需要有抽象類的子類,才能使用抽象類多態 class Programmer extends Person{ //程序員類是具體的子類 @Override public void work() { System.out.println("不斷的去完成項目開發..."); } } //測試類中測試 //調用PersonDemo的show方法 PersonDemo pd = new PersonDemo() ; Person person = pd.show(); //show方法本質 new Programmer() ; person.work();

?情況3:方法返回值類型是一個接口,如何返回

返回的是該接口的子實現類對象

代碼體現

//定義一個接口 interface Mary{ void mary() ; } //定義一個類 class MaryDemo{ public Mary method(){ //方法的返回值是接口類型,接口實例化不了的! //?? //Mary mary = new Mary() ; // return mary ; //return new Mary() ; //方式1:接口多態 // Mary mary = new WeddingCompany() ; //return mary ; //方式2:匿名對象 return new WeddingCompany() ; } } //需要接口的子實現類 //婚慶公司 class WeddingCompany implements Mary{ @Override public void mary() { System.out.println("婚慶公司布置婚禮現場!"); } } //測試類中測試 MaryDemo maryDemo = new MaryDemo() ; Mary m = maryDemo.method();//method方法本質:創建子實現類對象 new WeddingCompany() ; m.mary();

類及其組成可以用的修飾符?

內部類

定義:在類中創建的類

位置

按照內部類在類中定義的位置不同,可以分為如下兩種格式:

???????????????? 成員位置(成員內部類):即類中方法外

?????????????????局部位置(局部內部類):即方法定義上或方法中

成員內部類 外界如何創建對象

???????????????? 外部類名.內部類名 對象名 = 外部類對象.內部類對象;?

成員內部類?

成員內部的常見修飾符

???????? private 為了保證數據的安全性

????????static 為了讓數據訪問更方便

????????被靜態修飾的成員內部類只能訪問外部類的靜態成員

????????內部類被靜態修飾后的方法 可以是靜態方法,也可以是非靜態方

面試題?

補齊程序(注意:內部類和外部類沒有繼承關系) class Outer {public int num = 10;class Inner {public int num = 20;public void show() {int num = 30;//補全代碼}} } 在控制分別輸出:30,20,10 //答案: System.out.println(num); System.out.println(this.num); System.out.println(Outer.this.num);

局部內部類?

可以直接訪問外部類的成員

可以創建內部類對象,通過對象調用內部類方法,來使用局部內部類功能

注意事項?

局部變量會隨著方法的調用完畢而消失,這個時候,局部對象并沒有立馬從堆內存中消失,還 要使用那個變量。為了讓數據還能繼續被使用,就用fianl修飾,這樣,在堆內存里面存儲的其實 是一個常量值。

代碼體現?

class Outer {public void method() {final int n = 100;class Inner {public void show() {System.out.println(n);}}Inner i = new Inner();i.show();} } class OuterDemo {public static void main(String[] args) {Outer o = new Outer();o.method();} }

匿名內部類?

內部類的簡化寫法

前提?

存在一個類或者接口

????????這里的類可以是具體類也可以是抽象類。

格式?

new 類名或者接口名() {重寫方法;}

本質?

是一個繼承了類或者實現了接口的子類匿名對象

代碼體現?

abstract class Person {public abstract void show(); } class PersonDemo {public void method(Person p) {s.show();} }class PersonTest {public static void main(String[] args) {//如何調用PersonDemo中的method方法呢?PersonDemo pd = new PersonDemo ();pd.method(new Person() {public void show() {System.out.println(“show”);}});} }

面試題?

interface Inter { void show(); } class Outer { //補齊代碼 } class OuterDemo {public static void main(String[] args) {Outer.method().show(); } } 要求在控制臺輸出”HelloWorld//答案 public static Inter method(){return new Inter() {@Overridepublic void show() {System.out.println("helloworld");}};}

常用類?

Object類

Object類是所有類的根類,所有類的超類也就是父類

重點功能?

public String toString()

????????????????// 返回對象的字符串表示形式。 一般來說, toString方法返回一個“textually代表”這個對象的字符串。 結果應該是一個簡 明扼要的表達,容易讓人閱讀。 建議所有子類覆蓋此方法

public int hashCode()? ? ? //返回對象的哈希碼值?

?public boolean equals(Object obj)? ? ?//指示一些其他對象是否等于此

protected Object clone() throws CloneNotSupportedException? ? ?//創建并返回此對象的副本

String類?

特點

字符串的值在創建后不能被更改

因為String對象是不可變的,所以它們可以被共享。

?常用功能

?

面試題?

*String s1 = "hello" ; * String s2 = new String("hello") ; * 他們分別創建了幾個對象,有什么區別呢? * s1: 現在常量池中,是否存在這個常量,如果存在,直接返回地址值;否則,開辟新的空間地址值,賦值s1 * s2:在堆內存中申請空間,然后常量"hello", * 還需要在常量池中找是否存在這個常量,有,就返回地址,重新開辟常量池空間 * * * 共同點:都表示創建"hello"字符串實

?StringBuffer類

線程安全的可變字符序列

常用功能

int?length():?獲取字符串緩沖區的長度
public?int?capacity():獲取字符串緩沖區的容量?默認容量?16個字符,超過這個容量,會自己分配,使用的新的字符串的長度+16
StringBuffer常用的功能
public?StringBuffer?append(任意類型數據):添加任何類型數據到字符串緩沖區中
返回值字符串緩沖區本身
public?StringBuffer?insert(int?offset,String?xx):插入:在指定位置的前面插入一個新的字符序列
public?StringBuffer?reverse():將字符串緩沖區字符序列反轉

面試題?StringBuffer和String 的區別

String的特點:字符串常量,一旦創建,其值不改變; 不支持可變的字符序列

StringBuffer:支持的可變的字符序列,而且線程安全的,---執行效率低,多線程環境會 用,單線程環境下用的StringBuilder這個類;

方法的形式參數:

????????String和基本類型效果一樣;形式參數的改變不影響實際參數

????????StringBuffer:作為方法的形式參數,形式參數的改變,直接影響實際參數

類型轉換?

/** * 類型轉換 * StringBuffer和String的類型轉換 * * String---->StringBuffer,目的為了StringBuffer的特有功能 * StringBuffer--->String,結果需要是String類型 */ public class StringBufferDemo3 { public static void main(String[] args) { //String----StringBuffer //有一個字符串 String s = "hello" ; //StringBuffer sb = s; //方式1:利用StringBuffer()無參構造方法+append(String str) //創建一個字符串緩沖區對象 StringBuffer sb = new StringBuffer() ; sb.append(s) ; System.out.println(sb); //字符串緩沖區存儲的數據內容 "hello",類型是 StringBuffer System.out.println("----------------------------------"); //方式2:利用StringBuffered的有參構造方法StringBuffer(String str) StringBuffer sb2 = new StringBuffer(s) ; System.out.println(sb2); System.out.println("-----------------------StringBuffer轉換成String-- ---------------------"); //StringBuffer --->String StringBuffer buffer = new StringBuffer("helloworld") ;//字符序列是 helloworld,外面的類型StringBuffer //方式1:public String(StringBuffer buffer) ;String類的構造方法 String str = new String(buffer) ; System.out.println(str) ; //內容"helloworld",類型String System.out.println("-------------------------------------"); //方式2:public String toString() 顯示的應該是字符串緩沖區中的實際的 字符序列內容 String str2 = buffer.toString(); System.out.println(str2); /*int i = 100 ; String s4 = "100" ;*/ } }

Integer類

自動拆裝箱

/** * Integer類的構造方法 * public Integer(int value):將int類型----Integer類型 * public Integer(String s) throws NumberFormatException :將數字字符串 轉換成Integer * throws:拋出異常的意思 * 拋出異常的可能性,當你傳入的字符串如果不是數字字 符串,jvm解析的時候,將這個異常就信息打印在控制臺上 * * */ public class IntegerDemo2 { public static void main(String[] args) { int i = 100 ;//基本類型 // public Integer(int value):將int類型----Integer類型 Integer ii = new Integer(i) ; System.out.println(ii) ;//100 ii += 200 ; System.out.println(ii); //public Integer(String s) throws NumberFormatException :將數字字符 串 轉換成Integer //String s = "hello" ;//字符串: 必須是數字字符串 Integer是int類型包 裝類型 /* String s = "20" ; Integer iii = new Integer(s) ; System.out.println(iii);*///20 } /** * 上面代碼的使用反編譯工具查看 * jdk5新特性:自動拆裝箱 :基本類型--- 變成對應的引用類型 "裝箱" * 這些引用類型----->基本類型 ""拆箱 * * int i = 100; * Integer ii = new Integer(i); //裝箱 int---->Integer * System.out.println(ii); * * //我們的寫的代碼 ii+=200 ; * //反編譯工具---將 ii+=200:優化下面格式 * * ii = Integer.valueOf(ii.intValue() + 200); //參數里面: ii.intValue()+ 200 : ii--->拆箱 int類型 +200 求和 * //參數里面完成計算---->int結果 * public static Integer valueOf(int i) :將int類型的結果---- >Integer "裝箱" * * * System.out.println(ii); * */ }

Integer內部緩存區?

/* 將一個常量值賦值給Integer類型,通過反編譯工具 調用的Integer.valueOf(int類 型的值) */ public class IntegerTest { public static void main(String[] args) { Integer i1 = 127 ; Integer i2 = 127 ; System.out.println(i1==i2) ;//true System.out.println(i1.equals(i2)) ;//true Integer i3 = 127 ; Integer i4 = new Integer(127) ; System.out.println(i3==i4) ; //false System.out.println(i3.equals(i4)) ;//true //值128 超過-128-127 Integer i5 = 128 ; //Integer i5 = new Integer(128); Integer i6 = 128 ; //Integer i6 = new Integer(128); System.out.println(i5==i6) ; //false System.out.println(i5.equals(i6)) ;//true Integer i7 = new Integer(128) ; Integer i8 = new Integer(128) ; System.out.println(i7==i8) ;//false System.out.println(i7.equals(i8)) ;//true } }

常用功能

構造方法:

????????public Integer(int value)

? ? ? ? public Integer(String s)

成員方法

????????//int類型和String類型的相互轉換

???????? //int – String

????????//String – int

????????public int intValue()

????????public static int parseInt(String s)

????????public static String toString(int i)

????????public static Integer valueOf(int i)

????????public static Integer valueOf(String s)

????????//常用的基本進制轉換

????????public static String toBinaryString(int i)

????????public static String toOctalString(int i)

????????public static String toHexString(int i

character類?

常用功能

構造方法

????????public Character(char value)

成員方法

????????public static boolean isUpperCase(char ch)

????????public static boolean isLowerCase(char ch)

????????public static boolean isDigit(char ch)

????????public static char toUpperCase(char ch)

????????public static char toLowerCase(char ch)

int和String的相互轉換?

/*基本數據類型:八種 如何轉換String * String---->基本類型 * 使用 int舉例 * * int---->String :Integer.valueOf(int類型的值) * String---->int :Integer.parseInt(數字字符串) */ public class IntegerDemo3 { public static void main(String[] args) { //int---->String int i = 10 ; //方式1:字符串拼接 符號+ System.out.println(i+"");//"10" //方式2:int---->Integer:裝箱---->String //Intege(int i) Integer ii = new Integer(i) ; //Integer---->String :public String toString() String s = ii.toString(); System.out.println(s) ; //"10" //方式3:Integer類的靜態方法:public static String toString(int i) (推 薦) String s2 = Integer.toString(i); System.out.println(s2); System.out.println("-----------------------------------------------") ; //String --->int String str = "100" ;// 數字字符串 //方式1:推薦 Integer 靜態方法 public static int parseInt(String str): "最常用的" int number = Integer.parseInt(str); System.out.println(number); //100 //方式2:String---->Integer--->int //Integer(String s) Integer integ = new Integer(str) ; //public int intValue() int number2 = integ.intValue(); System.out.println(number2) ; } }

Random類

常用功能

構造方法

????????public Random()

????????public Random(long seed)

成員方法

????????public int nextInt()

? ? ? ? public int nextInt(int n)

System類?

常用功能

public static void gc()

public static void exit(int status)

public static long currentTimeMillis()

public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)

Date,DateFormat類?

DateFormat 是日期/時間格式化子類的抽象類,它以與語言無關的方式格式化并解析日期或時間。 是抽象類,所以使用其子類SimpleDateFormat?

date類?

????????public Date()

????????public Date(long date)

????????public long getTime()

????????public void setTime(long time)

SimpleDateFormat

????????構造方法

? ? ? ??????????public SimpleDateFormat()

????????????????public SimpleDateFormat(String pattern)

? ? ? ? 成員方法

????????????????? ? ??

Date和String的類型轉換?

/** * Date重點:日期文本格式和Date如何轉換? * String日期文本格式 "2022-8-13"------>java.util.Date 日期格式 * Date日期格式 轉換成 String * * 使用中間橋梁:DateFormat類 是一個抽象類,不能實例化,jdk提供更具體的子 類:SimpleDateFormat * * 構造方法 * public SimpleDateFormat(String pattern) * yyyy:年 MM:月 dd:月中日期 HH:小時 mm:分鐘 ss:秒 * * 成員方法: * Date---->String public String foramt(Date date) :格式化 * * String--->Date: public Date parse(String dateStr) throws ParseException: 解析 * 這個本身可能出現異常,如果解析的字符串的 格式和 pattern參數的模式匹配,就出錯了,解析失敗! * public SimpleDateFormat(String pattern) * * String s = "2008-5-12" ; * SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日") ; * SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ") ; * */ public class DateDemo2 { public static void main(String[] args) throws ParseException { //Date---->String :格式化操作 Date date = new Date() ; //創建當前系統時間日期對象 System.out.println(date); //使用中間橋梁 public SimpleDateFormat(String pattern) SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd") ; // public String foramt(Date date) :格式化 String s = sdf.format(date); System.out.println(s); System.out.println("-------------------------------------") ; //String--->Date: public Date parse(String dateStr) throws ParseException: 解析 String dataStr = "2008-5-12" ; //創建中間橋梁 public SimpleDateFormat(String pattern) SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd") ; //解析 Date d = sdf2.parse(dataStr); System.out.println(d); } }

集合?

數組和集合的區別??

1.長度的區別 數組長度固定 集合長度可變 2.存儲數據類型的區別 數組:存儲的數據類型:可以是基本數據類型,也可以是引用類型 集合:存儲的數據類型:只能使用引用類型 3.存儲元素的區別 數組:這個容器只能存儲同一種類型的元素 集合:這個容器可以存儲不同的引用類型的元素 ```' ## Collection:集合的頂層次的根接口

Collection集合

常用功能?

boolean add(E e) 添加元素

boolean remove(Object o) 刪除元素

boolean contains(Object o)判斷是否包含指定的元素

Object[] toArray():將集合轉換成對象數組

Iterator iterator():Collection集合的迭代器

Iterator iterator():判斷集合是否為空

三種遍歷方式代碼體現

import java.util.*;public class CollectionTest {public static void main(String[] args) {Collection<Student> c=new ArrayList<>();Student s1=new Student("徐鳳年",29);Student s2=new Student("姜泥",26);Student s3=new Student("徐龍象",23);Student s4=new Student("李淳罡",44);c.add(s1);c.add(s2);c.add(s3);c.add(s4);//方式一;轉化為數組對象進行遍歷Object[] obj=c.toArray();for(int i=0;i< obj.length;i++){System.out.println(obj[i]);}System.out.println("--------------------------------------");//方式二:運用collection迭代器Iterator<Student> it=c.iterator();while(it.hasNext()){System.out.println(it.next());}System.out.println("--------------------------------------");//方式三:增強for循環for(Student s:c){System.out.println(s);}} } //學生類 import java.util.Objects;public class Student {private String name;private int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic int hashCode() {return Objects.hash(name, age);}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +'}';}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Student student = (Student) o;return age == student.age && name.equals(student.name);}}

List集合?(繼承collection接口)

ArrayList:

????????底層數據結構是數組,查詢快,增刪慢,

????????線程角度考慮:線程不安全,不同步,執行效率高!

????????注意: 有擴容機制,是之前集合的1.5倍

Vcctor:

????????底層數據結構數組,查詢快,增刪慢,

????????線程角度考慮:線程安全的類,同步,執行效率低;

LinkedList:

????????底層數據結構是鏈表,查詢慢,增刪快

????????線程角度考慮:線程不安全的類,不同步,執行效率高?

List接口成員方法

void add(int index,E element) 在指定位置處添加元素

E remove(int index) 刪除指定位置的元素

E get(int index) 獲取指定位置的元素

E set(int index,E element) 在指定位置設置指定的元素

ListIterator listIterator() 列表迭代器

ArrayList子實現類?(collection和list的子實現類)

底層數據結構是數組,查詢快,增刪慢;線程不安全,效率高

代碼體現?

import java.util.ArrayList; import java.util.List; import java.util.ListIterator;public class ListTest {public static void main(String[] args) {//方式三運用list特有的方法進行遍歷List<Student> list=new ArrayList<>();Student s1=new Student("徐鳳年",29);Student s2=new Student("姜泥",26);Student s3=new Student("徐龍象",23);Student s4=new Student("李淳罡",44);list.add(s1);list.add(s2);list.add(s3);list.add(s4);//方式一運用list特有的方法進行遍歷for(int i=0;i< list.size();i++){Student s= list.get(i);System.out.println(s);}System.out.println("--------------------------------------");//方式二:利用list集合特有迭代器遍歷ListIterator<Student> lit= list.listIterator();while(lit.hasNext()){Student s=lit.next();System.out.println(s.getName()+"---"+s.getAge());}System.out.println("--------------------------------------");//方式三:增強for循環for(Student s:list){System.out.println(s);}} } //學生類 package com.qf.test3;import java.util.Objects;public class Student {private String name;private int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic int hashCode() {return Objects.hash(name, age);}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +'}';}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Student student = (Student) o;return age == student.age && name.equals(student.name);}}

Vector集合子實現類??(collection和list的子實現類)

底層數據結構是數組,查詢快,增刪慢;線程安全,效率低?

特有功能?

public void addElement(E obj) 添加元素,類似于List的add方法

public E elementAt(int index) 獲取指定位置的元素 ,類似于List集合的get方法

public Enumeration elements() 遍歷所有的元素,類似于List的迭代器

特有的遍歷方式?

Vector特有的遍歷方式

????????Enurmation elements()

????????boolean hasMoreElements()

????????nextElement()

普通for

????????size()+elementAt(int index)

?LinkedList子實現類(collection和list的子實現類)

底層數據結構是鏈表,查詢慢,增刪快;線程不安全,效率高?

LinkedList集合特有功能?

public void addFirst(E e) 添加鏈表開頭

???????? ????????addLast(E e) 添加鏈表結尾

public E getFirst() 獲取鏈表第一個

?????????????getLast() 獲取鏈表最后一個

public E removeFirst() 刪除第一個

public E removeLast() 刪除最后一個

?

List集合去重?

//String去重 import java.util.ArrayList; import java.util.List;public class ListStringquchong {public static void main(String[] args) {List<String> list=new ArrayList<>();list.add("abc");list.add("gsf");list.add("gsf");list.add("abc");list.add("ccc");list.add("ccc");list.add("ab");list.add("ab");List<String> ls1=new ArrayList<>();for(int i=0;i< list.size();i++){String s=list.get(i);if(ls1.contains(s)==false){ls1.add(s);}}for(String s:ls1){System.out.println(s);}} } //自定義去重 import java.util.ArrayList; import java.util.List;public class Tistzidingyiquchong {public static void main(String[] args) {List<Student> ls=new ArrayList<>();Student s1=new Student("喬峰",44);Student s2=new Student("楊過",43);Student s3=new Student("楊過",43);Student s4=new Student("喬峰",44);Student s5=new Student("喬峰",44);Student s6=new Student("滅絕師太",44);ls.add(s1);ls.add(s2);ls.add(s3);ls.add(s4);ls.add(s5);ls.add(s6);List<Student> ls1=new ArrayList<>();for(int i=0;i<ls.size();i++){Student s=ls.get(i);if(ls1.contains(s)==false){ls1.add(s);}}for(Student s:ls1){System.out.println(s);}}}

增強for?

簡化數組和Collection集合的遍歷

格式: for(元素數據類型 變量 : 數組或者Collection集合) {使用變量即可,該變量就是元素 }

總結

以上是生活随笔為你收集整理的包,内部类,常用类,集合的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。