最近培训是先学习java基础 从最基本的开始学起 因为今天刚刚开博客 要把上周的一些重点内容归纳一下

1.Arraylist常用遍历以及排序

 import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator; public class Test05 {
public static void main(String[] args) { // 先new一个Arraylist (泛型不懂得我也没办法)
ArrayList<String> arrayList = new ArrayList<String>(); //添加元素 arrayList.add("3");
arrayList.add("1");
arrayList.add("2");
arrayList.add("2"); //利用工具类Collections里面的sort进行排序
Collections.sort(arrayList); //arrayList.size()获取集合长度,arrayList.get()返回在此列表中的指定位置的元素。 for (int i = 0; i < arrayList.size(); i++) {
System.out.println(arrayList.get(i)); } //利用迭代器遍历
Iterator<String> iterator = arrayList.iterator();
//利用while循环获取元素
while (iterator.hasNext()) {
String string = iterator.next();//指到下一个元素
System.out.println(string);
}
System.out.println("--------------------"); //利用匿名内部类comparator方法重写,arraylist.sort的排序
arrayList.sort(new Comparator<String>() {
//这是一个匿名内部类
@Override
public int compare(String o1, String o2) {
//将String 转为char
char a = (char) o1.charAt(0);
char b = (char) o2.charAt(0);
return a - b;//返回值自己定 正数 0或者负数会有不同的排序方法
}
}); //foreach循环遍历
for (String string : arrayList) {
System.out.println(string);
}
System.out.println("--------------------"); }
}

2.运行结果

3.总结:

其中有三种遍历方式

1.最后一种利用for循环 跟数组一样获取集合长度,在通过指定位置获取指定位置的元素,这是最基本的,(其中Collections工具类将集合进行排序)

2.利用迭代器,iterator来通过hasNest()查看集合是否含有元素,在通过iterator.next()指定到下一个元素,从何获取元素达到遍历

3.第三种利用foreach循环遍历 其中编写了comparator比较器排序

扩展:

这是利用迭代器删除指定元素

因为正常删除的话,ArrayList是集合,长度不是固定的,所以无法使用for循环来获取元素再删除 因为在你删除前一个值得同时,长度减少了1,并且后一个值向前挪动了一位,此时i会增加1后直接移动两位,以至于丢失删除不到。

而迭代器是通过指针,指向当前数据结构的起始位置。(遍历器的本质就是一个指针对象),不断调用指针对象的next方法,指向下一个元素,直到它指向数据结构的结束位置。

 //迭代器
Iterator<String> iterator = arrayList.iterator();
//利用while循环获取元素
while (iterator.hasNext()) {
//如果下一个元素值为2,将它移除
if(iterator.next().equals("2")) {
iterator.remove();
}
}
for (String string : arrayList) {
System.out.println(string);
}

运行结果:

以上只是一个学习一周的小程序员,有误请及时纠正,让我学习到更深刻的知识。谢谢。

java 集合之Arraylist的遍历及排序的更多相关文章

  1. 从源码看Java集合之ArrayList

    Java集合之ArrayList - 吃透增删查改 从源码看初始化以及增删查改,学习ArrayList. 先来看下ArrayList定义的几个属性: private static final int ...

  2. java集合之ArrayList,TreeSet和HashMap分析

    java集合是一个重点和难点,如果我们刻意记住所有的用法与区别则是不太现实的,之前一直在使用相关的集合类,但是没有仔细研究区别,现在来把平时使用比较频繁的一些集合做一下分析和总结,目的就是以后在需要使 ...

  3. Java集合关于ArrayList

    ArrayList实现源码分析 2016-04-11 17:52 by 淮左, 207 阅读, 0 评论, 收藏, 编辑 本文将以以下几个问题来探讨ArrayList的源码实现1.ArrayList的 ...

  4. Java集合干货——ArrayList源码分析

    ArrayList源码分析 前言 在之前的文章中我们提到过ArrayList,ArrayList可以说是每一个学java的人使用最多最熟练的集合了,但是知其然不知其所以然.关于ArrayList的具体 ...

  5. Java集合:ArrayList的实现原理

    Java集合---ArrayList的实现原理   目录: 一. ArrayList概述 二. ArrayList的实现 1) 私有属性 2) 构造方法 3) 元素存储 4) 元素读取 5) 元素删除 ...

  6. Java集合(六)--ArrayList、LinkedList和Vector对比

    在前两篇博客,学习了ArrayList和LinkedList的源码,地址在这: Java集合(五)--LinkedList源码解读 Java集合(四)--基于JDK1.8的ArrayList源码解读 ...

  7. Java集合:ArrayList (JDK1.8 源码解读)

    ArrayList ArrayList几乎是每个java开发者最常用也是最熟悉的集合,看到ArrayList这个名字就知道,它必然是以数组方式实现的集合 关注点 说一下ArrayList的几个特点,也 ...

  8. JAVA集合四:比较器--类自定义排序

    参考链接: HOW2J.CN 前言 对于JAVA集合,都能够用集合的工具类Collections 提供的方法: Collections.sort(List list) Collections.sort ...

  9. java集合-数组ArrayList

    1.简介 ArrayList是java集合框架常用的集合类之一,底层是基于数组来实现容量大小动态变化的. 2.类图(JDK 1.8) 下图是ArrayList实现的接口和继承的类关系图: public ...

随机推荐

  1. 利用IE浏览器查看元素绑定的JS代码

  2. Ubuntu中NS2安装详细教程

    前言: NS2是指 Network Simulator version 2,NS(Network Simulator) 是一种针对网络技术的源代码公开的.免费的软件模拟平台,研究人员使用它可以很容易的 ...

  3. Mathematica 和 MATLAB、Maple 并称为三大数学软件

    Mathematica是一款科学计算软件,很好地结合了数值和符号计算引擎.图形系统.编程语言.文本系统.和与其他应用程序的高级连接.很多功能在相应领域内处于世界领先地位,它也是使用最广泛的数学软件之一 ...

  4. 一句python,一句R︱python中的字符串操作、中文乱码、NaN情况

    一句python,一句R︱python中的字符串操作.中文乱码.NaN情况 先学了R,最近刚刚上手Python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句pytho ...

  5. 在Eclipse中添加Tomcat

    在Eclipse中开发web或开启web服务需要Tomcat的支持,在添加Tomcat之前要清楚你的Eclipse版本,如果你的Eclipse是javvEE版的就可以直接安装Tomcat,如果不是就需 ...

  6. pom.xml中若出现jar not found;

    pom.xml中若出现jar not found;我们可以直接在view ->tool windows ->Maven Project 中直接install

  7. DAY1-作业

    Python-day1-------> 本节内容: Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据 ...

  8. python 数据分析领域常用的包

  9. jquery on事件

    可以给后添加的动态元素绑定事件

  10. jmeter响应代码为乱码

    1.在请求的前面添加BeanShell PostProcessor 输入prev.setDataEncoding("UTF-8"); 2.当响应数据或响应页面没有设置编码时,jme ...