java去除重復對象_Java19-2 集合類去除重復對象

List獨有方法:

import java.util.ArrayList;

import java.util.List;

public class ListTest2 {

public static void main(String[] args) {

List list=new ArrayList();

list.add("abc1");

list.add("abc2");

list.add("abc1");

list.add("abc3");

list.add("abc4");

list.add("abc5");

list.add("abc5");

list.add("abc6");

for (int i = 0; i

Object obj=list.get(i);

for (int j =i+1; j

if (obj.equals(list.get(j)))

{ list.remove(j);//如果刪除了下一個 因為是數組形

// 式,所以整體提前。如果緊接著下一個會提到j位置上 所以j-- 遍歷到刪除后緊接的下一個

j--;}

}

}

System.out.println(list.toString());

}

}

集合迭代器方法:

//建立臨時集合 將此集合中的對象按順序放入臨時集合中

//相同的不放入臨時結合 清空此集合,將臨時集合中添加到此集合完成

public class ListTest2_1 {

public static void main(String[] args) {

List list=new ArrayList();

list.add("abc1");

list.add("abc2");

list.add("abc1");

list.add("abc3");

list.add("abc4");

list.add("abc5");

list.add("abc5");

list.add("abc6");

singleElement(list);

System.out.println(list.toString());

}

private static void singleElement(List list) {

List list1=new ArrayList();

for (Iterator iterator = list.iterator(); iterator.hasNext(); ) {

String next = (String) iterator.next();

if (!list1.contains(next)) {

list1.add(next);

}

}

list.clear();

list.add(list1);

}

}

取出對象中自定義元素 及去掉重復元素

//將Person對象存入List集合中 并顯示出來

public class ListTest1 {

public static void main(String[] args) {

List list=new ArrayList();

ListTest1_Person lp1=new ListTest1_Person("松江",15);

ListTest1_Person lp2=new ListTest1_Person("阿薩",15);

ListTest1_Person lp3=new ListTest1_Person("自行車",15);

list.add(lp1);

list.add(lp2);

list.add(lp3);

list.add(new ListTest1_Person("松江",15));

list.add(new ListTest1_Person("松江",16));

list.add(new ListTest1_Person("阿薩",15));

singleElement(list);

System.out.println(list.toString());//調用的內部toString方法 --2

//取出自定義元素--1

/* for (Iterator iterator = list.iterator(); iterator.hasNext(); ) {

ListTest1_Person next = (ListTest1_Person) iterator.next();//.next();是obj類型

// 向下轉換類型 轉換成ListTest1_Person類型可以調用get方法

System.out.println(next.getName()+next.getAge());

}*/

}

// --2

private static void singleElement(List list) {

List list1=new ArrayList();

for (Iterator iterator = list.iterator(); iterator.hasNext(); ) {

ListTest1_Person next = (ListTest1_Person) iterator.next();

if (!list1.contains(next)) {

//contains方法調用的引用類對象的equals方法 所以復寫方法使equals不但判斷地址而且判斷年齡姓名

list1.add(next);

}

}

list.clear();

list.add(list1);

}

}

Person類

public class ListTest1_Person {

private String name;

private int age;

public ListTest1_Person(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;

}

@Override

public String toString() {

return "ListTest1_Person{" +

"name='" + name + '\'' +

", age=" + age +

'}';

}

@Override

public boolean equals(Object o) {

if (this == o) return true;

if (!(o instanceof ListTest1_Person))

{throw new ClassCastException("類型不對");}

ListTest1_Person lp=(ListTest1_Person) o;

return this.name.equals(lp.name)&&this.age==lp.age;

}

/* @Override 自動添加的方法 alt+Insert

public boolean equals(Object o) {

if (this == o) return true;

if (o == null || getClass() != o.getClass()) return false;

ListTest1_Person that = (ListTest1_Person) o;

return age == that.age &&

Objects.equals(name, that.name);

}*/

}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/541875.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/541875.shtml
英文地址,請注明出處:http://en.pswp.cn/news/541875.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SSM框架整合中遇到重復的問題Ambiguous handler methods mapped for HTTP

嚴重: Servlet.service() for servlet [spring] in context with path [/ssmDemo] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path /init.do: {public java.lang.String …

Java ObjectStreamClass lookup()方法與示例

ObjectStreamClass類lookup()方法 (ObjectStreamClass Class lookup() method) lookup() method is available in java.io package. lookup()方法在java.io包中可用。 lookup() method is used to lookup the descriptor for a class that can be serialized. lookup()方法用于…

java default parameter_JAVA菜鳥入門(7) default parameter , float/double vs BigDecimal

1 java的允許函數的默認參數嗎?java不支持類似C那樣,為函數設定默認參數,所以需要做的事情是,自己用函數重載的方式進行模擬。如下public class FFOverload {public String getName(String givenName,String familyName){return givenName&…

gitlab修改默認端口

部署gitlab的時候,一啟動,發現80和8080端口已經被占用,無奈,只得先將監聽80端口的nginx和監聽8080端口的jenkins停止。這會兒有空,琢磨一下如何修改gitlab的默認端口。 修改主要分為兩部分,一部分是gitlab總…

Java ObjectOutputStream reset()方法與示例

ObjectOutputStream類reset()方法 (ObjectOutputStream Class reset() method) reset() method is available in java.io package. reset()方法在java.io包中可用。 reset() method is used to reset this stream. It reset the stream to the position marked most recently. …

Excel 自定義關閉按鈕

遇到過這樣一個需求,是在excel關閉的時候,不要excel本身的保存窗口,只用自定義的. 這個的需要第一,是點擊關閉時候觸發, 第二;觸發后,不能還是彈出那個窗口 第三:取消后,…

Java OutputStreamWriter close()方法與示例

OutputStreamWriter類close()方法 (OutputStreamWriter Class close() method) close() method is available in java.io package. close()方法在java.io包中可用。 close() method is used to first flush before closing the stream and the method write() or flush() invok…

深入理解Netscaler INat

深入理解Netscaler INatNetscaler的INat主要是用作基于目的地址的轉換,將client訪問的公網IP通過Netscaler轉換成服務器的私網IP,與DNAT作用類似。由于Netscaler默認的工作機制就是同時做源IP:【源端口】目的IP:【目的端口】的轉換…

java 方法 示例_Java語言環境getDisplayCountry()方法與示例

java 方法 示例區域設置類getDisplayCountry()方法 (Locale Class getDisplayCountry() method) Syntax: 句法: public final String getDisplayCountry();public String getDisplayCountry(Locale lo);getDisplayCountry() method is available in java.util pack…

格力電器Java面試題_JAVA設計模式學習--工廠模式

今天談一下對工廠模式學習的總結。看完視頻和文章之后要自己表述工廠模式,總是感覺無從說起,不知道怎么去定義工廠模式,反復看了幾遍之后終于理解一點。自己理解工廠模式是通過這兩種模式的特點來理解和定義的,首先工廠模式有簡單…

為什么玩我的世界老提示Java se錯誤_我的世界error錯誤信息 error could解決方法

我的世界是一個及其開放的沙盒游戲,而在這個游戲中有不少的問題,比如說遇到error該如何解決呢,看小編給大家帶來的我的世界error錯誤的解決方法,希望大家喜歡。error應用程序錯誤信息。包括“Error:Unable to access jarfile mcpc…

Tomcat 服務器只能存有一個正在運行的項目

即使新建了一個new project (在同一個工作空間),啟動Tomcat 還是會出現先前(工程名)一樣的問題/異常。 【原因】: 在底下Server 那里——Tomcat 7.X 底下會有很多工程名,它會紀錄!所…

Java Collections singletonMap()方法與示例

集合類singletonMap()方法 (Collections Class singletonMap() method) singletonMap() method is available in java.util package. singletonMap()方法在java.util包中可用。 singletonMap() method is used to return an immutable map (i.e. immutable map is a map that c…

java訪問登錄網頁_===java怎樣訪問需要登錄才能查看的網頁????急!!===...

java中可以用java.net包下的東西訪問網頁,但是有的網頁要求用戶先輸入用戶名和密碼才能查看,這些網頁java怎么訪問呢???注意:我說的要輸入用戶名和密碼不是瀏覽器彈出一個框的那種,而是象csdn這…

javascript OOP(下)(九)

一、javascript模擬重載 java中根據參數類型和數量的區別來實現重載&#xff0c;javascript弱類型&#xff0c;沒有直接的機制實現重載&#xff0c;javascript中參數類型不確定和參數個數任意&#xff0c;通過判斷實際傳入的參數的個數來實現重載。 <script> function Pe…

java calendar_Java Calendar getDisplayNames()方法與示例

java calendar日歷類的getDisplayNames()方法 (Calendar Class getDisplayNames() method) getDisplayNames() method is available in java.util package. getDisplayNames()方法在java.util包中可用。 getDisplayNames() method is used to return Map that contains all fie…

Linux如何查找大文件或目錄總結

轉載&#xff1a;http://www.cnblogs.com/kerrycode/p/4391859.html 在Windows系統中&#xff0c;我們可以使用TreeSize工具查找一些大文件或文件夾&#xff0c;非常的方便高效&#xff0c;在Linux系統中&#xff0c;如何去搜索一些比較大的文件呢&#xff1f;下面我整理了一下…

java編寫簡單郵件_Javamail,編寫簡單的程序發送郵件

代碼&#xff1a;package com.dai.mail; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.In…

java calendar_Java Calendar getLeastMaximum()方法與示例

java calendarCalendar類的getLeastMaximum()方法 (Calendar Class getLeastMaximum() method) getLeastMaximum() method is available in java.util package. getLeastMaximum()方法在java.util包中可用。 getLeastMaximum() method is used to get the least maximum value …

Shell 標準輸入、輸出和錯誤

防偽碼&#xff1a;桃花潭水深千尺&#xff0c;不及汪倫送我情。文件描述符&#xff08;fd&#xff09;&#xff1a;文件描述符是一個非負整數&#xff0c;在打開現存文件或新建文件時&#xff0c;內核會返回一個文件描述符&#xff0c;讀寫文件也需要使用文件描述符來訪問文件…