arraylist java 排序_「arraylist排序」java ArrayList的两种排序方法 - seo实验室
arraylist排序
1.ArrayList使用排序的初衷
我们知道ArrayList的好处是可以不用限定容器的大小,他会根据元素的增加自己扩大。但是存储进去的数据类型都会变成object,虽然每个元素有自己的index,但不像数组的下标可以更加方便的操作。那我们平时学习的选择排序啊快速排序啊都是对数组进行操作。最开始的笨办法就是把list中的数据传给数组排序好了再传回来喽。但是这样效率真的下降的不是几倍,是几十倍啊真的不能这样来。查了点资料和案例在这里总结一下。
2.对一个ArrayList中的数组进行排序。
首先来看下Collection的帮助文档:
在这里顺便补充下ArrayList和Collection的关系:
具体的使用代码如下:import java.util.ArrayList;
import java.util.Collections;
import java.util.scanner;
public class compre {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan=new Scanner(System.in);
int n;
ArrayList al=new ArrayList();
System.out.println("请输入需要的个数");
n=scan.nextint();
System.out.println("请逐一输入");
for(int i=0;i
al.add(i,scan.nextInt());
}
System.out.println("你输入的数字是:");
for(int i=0;i
int temp=(int)al.get(i);
System.out.print(temp+" ");
}
collections.sort(al);//针对一个ArrayList内部的数据排序
System.out.println();
System.out.println("经过排序后:");
for(int i=0;i
int temp=(int)al.get(i);
System.out.print(temp+" ");
}
}
}
运行结果:
2.多个ArrayList中的元素进行排序class SortByName implements Comparator {
public int compare(Object o1, Object o2) {
Student s1 = (Student) o1;
Student s2 = (Student) o2;
return s1.getName().compareTo(s2.getName());
}
}class SortByAge implements Comparator {
public int compare(Object o1, Object o2) {
Student s1 = (Student) o1;
Student s2 = (Student) o2;
return s1.getAge().compareTo(s2.getAge());
// if (s1.getAge() > s2.getAge())
// return 1;
// return -1;
}
}
相关阅读
先说下原因,最近项目中出现了获取网络数据混乱的情况,经过仔细查看才知道是加入集合的顺序出了问题,由于我是循环获取id,然后再循环请
ArrayList源码分析
ArrayList简介
我们知道,ArrayList是基于数组实现的List类,完全支持List接口的全部功能,底层实质上就是一个O
一,查看磁盘空间大小的命令:dfdf命令用于查看磁盘分区上的磁盘空间,包括使用了多少,还剩多少,默认单位是KB比如以下命令:df -hl执行结果
文章目录`java.util.ArrayList`数组和`ArrayList`的比较例1例2书后的练习java.util.ArrayList
从书中各种代码来看,java.util.A
arraylist java 排序_「arraylist排序」java ArrayList的两种排序方法 - seo实验室相关推荐
- python画指数函数图像_「指数函数图像」python画出e指数函数的图像 - seo实验室...
指数函数图像 这里用Python逼近函数y = exp(x);同样使用泰勒函数去逼近: exp(x) = 1 + x + (x)^2/(2!) + .. + (x)^n/(n!) + ...#!/us ...
- python数字转英文_「年月日英文」python英文日期转数字年月日格式 - seo实验室
年月日英文 import time import datetime time='Friday, November 18, 2016' time_format=datetime.datetime.str ...
- jquery对textarea写入_「textarea赋值」JQuery给textarea取值和赋值 - seo实验室
textarea赋值 JQuery给textarea取值和赋值 取值 var qrcodefortemcontent=$("#qrcodefortemcontent").val() ...
- java8 lambda maplist排序_「java8系列」流式编程Stream
前言 「Java8系列」神秘的Lambda 「Java8系列」神奇的函数式接口 继上两篇之后,本文已经java8系列的第三篇了.本篇文章比较长,但我希望大家都能认真读完.读不完可以先收藏,在找时间读. ...
- 虚拟机的分类_「面试必备」Java虚拟机知识点复习手册(下)
关注我的微信公众号:后端技术漫谈 不定期推送关于后端开发.爬虫.算法题.数据结构方面的原创技术文章,以及生活中的逸闻趣事. 我目前是一名后端开发工程师.主要关注后端开发,数据安全,网络爬虫,物联网,边 ...
- 类似婚礼纪的Java项目_「婚礼纪」婚礼纪 java面试 - seo实验室
婚礼纪 我现在只是一个快2年经验的平凡的菜鸡boy 第一面架构师面试 1.简单介绍一下你经常使用的集合 3.arraylist和linklist的区别 4.map有用过吧,简单说一下 5.说一下Has ...
- java锁的有哪些_「并发编程」Java锁分类和特点有哪些
公平锁.非公平锁:公平锁指多个线程按照申请锁的顺序来获取锁,非公平锁就是没有顺序完全随机,所以能会造成优先级反转或者饥饿现象:synchronized 就是非公平锁,ReentrantLock(使用 ...
- java -jar 指定端口_「Linux命令」-Java程序员需要掌握的10个命令
作为服务端开发的同学,经常会与linux服务器打交道,一些用的命令必须要掌握. 1.top命令-观察服务端负载情况 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况 ...
- java jxl poi_「excle下载」java实现下载excle(jxl、poi 两种方式) - seo实验室
excle下载 @requestMAPPing(value="/download_index") public String downloadexcel(HttpServletRe ...
- excel导入mysql实验_「excel数据库」将excel表导入数据库的方法步骤 - seo实验室
excel数据库 在excel中录入好数据以后,可能会有导入数据库的需求,这个时候就需要利用一些技巧导入.接下来是seo实验室小编为大家带来的如何将excel表导入数据库的方法,希望对你有用. 将ex ...
最新文章
- 华为修改优先级命令_VOlTE指标设定(华为网管各种命令)
- CF17E:Palisection——题解
- mysql 做回归模型_GitHub - themycode/intelligent-test-platform: intelligent-test-platform
- c++随机数函数rand()
- 第四节:跨域请求的解决方案和WebApi特有的处理方式
- keil4内嵌汇编_keil C中嵌入汇编程序的方法
- 用python和pycharm能做什么_pycharm能干嘛
- Android第十二期 - NavigationDrawer侧边栏滑动效果左右可控制
- Noip 2016 Day1 题解
- 深度学习 --- 受限玻尔兹曼机RBM(直接采样、接受-拒绝采样、重要性采样详解)
- PICT的安装及使用
- powerquery分组_Power Query 基本功能使用
- Python 颜色代码大全
- c#语言猜数字游戏,使用C#实现猜数字游戏
- 最经典的人生定律、法则、效应总结
- springboot+vue+elementUI 公司财务固定资产管理系统#毕业设计
- 如何“延迟加载”嵌入式YouTube视频
- U盘 安装 WIN7 ISO
- 《阿里云周刊》第4期:开放共享,网商银行的运营探索及技术支撑
- 力扣刷题:四数之和(C++)