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.mzph.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;读写文件也需要使用文件描述符来访问文件…