1.去重

1.1 for循环去重

for (int i = 0; i

list.remove(j);

j--;

}

}

}

测试结果:

,感觉还是有点用的,感觉循环次数太多了,不推荐使用。

List list = new LinkedList();

List list1 = new LinkedList();

Random random= newRandom();int s=0;while (s<50) {

list.add(random.nextInt(10));

s++;

}

System.out.println("去重前"+list);for(Integer temp:list) {if (!list1.contains(temp)) { //判断list1中是否存在这个元素,不存在就保存进去

list1.add(temp);

}

}

list=list1;

System.out.println("去重后" + list);

第二种,可以用用。

1.2 set去重

set集合的提点是无序,不能重复,所以如果把list先存进set集合中,重复元素就没了,之后再取出,重现放进list就可以了,但这个方法有一个缺点,就是原来list元素的顺序会被打乱,如果对顺序有要求的话不推荐使用。

List list = new LinkedList();

Set set = new HashSet();

Random random= newRandom();int s=0;while (s<50) {

list.add(random.nextInt(10));

s++;

}

System.out.println("去重前"+list);for(Integer temp:list) {

set.add(temp);

}

list.clear();for(Integer temps:set) {

list.add(temps);

}

System.out.println("去重后" + list);

1.3 map去重

hashmap的key是不能重复的,value是可以重复的,所以我们可以把list的值当做map的key,这样就可以把重复的值去掉了

List list = new LinkedList();

Map map = new HashMap();

Random random= newRandom();int s=0;while (s<50) {

list.add(random.nextInt(10));

s++;

}

System.out.println("去重前"+list);for(Integer temp:list) {

map.put(temp,"value");

}

list.clear();for (intkey : map.keySet()){

list.add(key);

}

System.out.println("去重后" + list);

2.排序

排序一般是用集合工具类中的sort()方法,这个方法还有一个重载的方法,下面分别来介绍并测试一下。

2.1 Collections.sort(list)

直接调用sort方法,就可以了,排序方式是升序

List list = new LinkedList();

Random random= newRandom();int s=0;while (s<10) {

list.add(random.nextInt(10));

s++;

}

System.out.println("排序前"+list);

Collections.sort(list);

System.out.println("排序后" + list);

2.2 Collections.sort(list,Comparator<>)

这个重载方法主要用来帮对象排序,自定义排序

先创建一个实体类 dog类

public classdog {private intid;privateString name;privateString sex;public dog(intid,String name,String sex) {this.id=id;this.name =name;this.sex =sex;

}public intgetId() {returnid;

}public void setId(intid) {this.id =id;

}publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}publicString getSex() {returnsex;

}public voidsetSex(String sex) {this.sex =sex;

}

}

之后就是调用sort方法,并且实现Comparator接口,实现里面的compare方法。

List list = new LinkedList();int s=10;while (s>0) {

list.add(new dog(s,"南波万","雄"));

s--;

}for(dog o:list) {

System.out.println(o.getId());

}

Collections.sort(list,new Comparator() {public intcompare(dog o1, dog o2) {if (o1.getId() >o2.getId()) {return 1;

}else if (o1.getId()

}else{return 0;

}

}

});

System.out.println("排序后");for(dog o : list) {

System.out.println(o.getId());

因为我的排序字段是id,就用了id做比较,大于返回正数,一般都是为1,小于返回负数,一般都是-1,等于返回0

java集合set不能去重_java集合去重和排序相关推荐

  1. java arraylist去重_java ArrayList去重

    对list集合中的重复值进行处理,大部分是采用两种方法, 一种是用遍历list集合判断后赋给另一个list集合, 另一种是用赋给set集合再返回给list集合. 方法1:set集合去重,不打乱顺序 L ...

  2. java大作业斗地主游戏_Java集合练习:斗地主游戏

    这是一个模拟斗地主的小游戏,最后看到的牌型是经过排序的,具体代码和解释如下: package cn.poker_test; import java.util.ArrayList; import jav ...

  3. java集合框架的接口_Java集合框架——Set接口

    第三阶段 JAVA常见对象的学习 集合框架--Set接口 List集合的特点是有序的,可重复的,是不是存在这一种无序,且能保证元素唯一的集合呢?(HashSet )这就涉及到我们今天所要讲的Set集合 ...

  4. java 关于集合的笔试题_Java集合面试题(一)

    1.Collection和Collections的差别 java.util.Collection 是一个集合接口,Collection接口在Java类库中有非常多详细的实现.比如List.Set ja ...

  5. java集合类继承关系图_java集合继承关系图

    面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式. 数组虽然也可以存储对象,但长度是固定的:集合长度是可变的,数组中可以存储基 ...

  6. java集合框架的接口_Java集合框架之Collection接口详解

    Java是一门面向对象的语言,那么我们写程序的时候最经常操作的便是对象了,为此,Java提供了一些专门用来处理对象的类库,这些类库的集合我们称之为集合框架.Java集合工具包位于Java.util包下 ...

  7. java集合的存储特征_Java集合常用类特点整理

    集合的结构如下图所示: 集合的两个顶级接口分别为:Collection和Map Collection下有两个比较常用的接口分别是List(列表)和Set(集),其中List可以存储重复元素,元素是有序 ...

  8. java 数组合并 去重_Java集合与数组去重

    集合去重 方法一:利用集合的contains方法,创建临时集合组装数据去重 public void listTest1(){ System.out.println("方法一"); ...

  9. java hashmap 去重_java数组去重的两种方法

    我们对于数组元素的使用,有时候在创建数组的初期,并没有考虑过元素的重复问题.当我们想要不重复元素的数组时,就要再进行一步去重的工作.数组的去重有两种方法可以实现,一个是循环比较,另一个是hashSet ...

最新文章

  1. 力扣(LeetCode)刷题,简单题(第8期)
  2. MVC HtmlHelper用法大全
  3. 201521123024 《Java程序设计》 第九周学习总结
  4. php-数据分析 余弦相似度实现
  5. 10个趣味的物理与化学动图欣赏,看过直称神奇!
  6. Java笔记-Spring-rabbitmq中设置receiveMessage参数为Message
  7. OpenVZ,Xen,KVM等:虚拟化解决方案
  8. 财富反而越增涨,越没钱的人,财富越下降
  9. java http服务_springboot官方例子中文翻译--RESTful服务启用CORS支持
  10. R 学习笔记《四》 R语言初学者指南--载入数据
  11. 服务器系统怎么做ghost备份,手动ghost备份系统的具体操作步骤【图文教程】
  12. 痱子和湿疹的区别在哪里?
  13. ODT,ZQ校准,OCT,TDQS
  14. 如何保存微信视频号的视频到本地?
  15. 《google软件测试之道》精彩语句摘抄
  16. 双评价技术指南2020_2020年双11 千元以下人体工学椅选购指南,不交智商税
  17. android qq 设置界面大小设置,怎么设置手机腾讯QQ的字体大小
  18. 什么是Timestamp——时间戳?
  19. win10右键新建为什么没有文本文档了
  20. 使用阿里云服务器无法正常解析域名怎么办

热门文章

  1. 什么是SSL协议 SSL协议的实现方式
  2. 在Ubuntu下登录qq的时候显示“您已登录xxxxx,不能重复登录”
  3. 使用Sentence Transformers和Faiss构建语义搜索引擎
  4. 欧拉图与半欧拉图的判断
  5. WPF——ViewBox控件
  6. [初学Spring Boot](1):打不开localhost:8080/hello
  7. java12/13新特性
  8. 小王想报英语计算机,7月31日数量关系排列组合与概率(6页)-原创力文档
  9. 安装zabbix及部署
  10. VirtualBox安装Centos图解教程