Java list的用法排序及遍历
原文地址:http://baike.xsoftlab.net/view/208.html
1用法
ArrayList
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public static void main(String[] args) { // ArrayList类实现一个可增长的动态数组 List<String> list = new ArrayList<String>(); // 插入元素 list.add("list1"); list.add("list2"); // 打印list的大小 System.out.println(list.size()); // 按索引移除元素 list.remove(0); // 按对象移除元素 list.remove("list2"); // 打印list的大小 System.out.println(list.size()); // 清空list list.clear();} |
LinkedList
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public static void main(String[] args) { // LinkedList类实现了链表,可初始化化为空或者已存在的集合 LinkedList<String> list = new LinkedList<String>(); // 插入元素 list.add("list2"); list.add("list3"); // 向链表头插入数据 list.addFirst("list1"); // 向链表尾插入数据 list.addLast("list4"); for (String str : list) { System.out.println(str); } // 获取链表头数据 System.out.println("链表头数据:" + list.getFirst()); // 获取链表尾数据 System.out.println("链表尾数据:" + list.getLast());} |
2排序
数字排序
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public static void main(String[] args) { // 创建list List<Integer> list = new ArrayList<Integer>(); // 插入元素 list.add(2); list.add(0); list.add(3); list.add(4); list.add(1); Collections.sort(list); for (int i : list) { System.out.println(i); }} |
中文排序
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("一鸣惊人-Y"); list.add("人山人海-R"); list.add("海阔天空-H"); list.add("空前绝后-K"); list.add("后来居上-H"); Comparator<Object> cmp = Collator.getInstance(java.util.Locale.CHINA); Collections.sort(list, cmp); for (String str : list) { System.out.println(str); }} |
实体类排序
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
package net.xsoftlab.baike;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class TextList { public static void main(String[] args) { List<User> userlist = new ArrayList<User>(); userlist.add(new User("Y - 易小星 ", 33)); userlist.add(new User("W - 王大锤", 33)); Comparator<User> cmp = new ComparatorUser(); Collections.sort(userlist, cmp); for (User user : userlist) { System.out.println(user.getName()); } }}class ComparatorUser implements Comparator<User> { @Override public int compare(User u1, User u2) { // 先按年龄排序 int flag = u1.getAge().compareTo(u2.getAge()); // 年龄相等比较姓名 if (flag == 0) { return u1.getName().compareTo(u2.getName()); } else { return flag; } }}class User { private String name; private Integer age; public User() { super(); } public User(String name, Integer age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; }} |
3遍历
三种遍历方法
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public static void main(String[] args) { List<String> list = new ArrayList<String>(); // 插入元素 list.add("list1"); list.add("list2"); list.add("list3"); System.out.println("第一种遍历方法 - >"); for (String str : list) { System.out.println(str); } System.out.println("第二种遍历方法 - >"); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } System.out.println("第三种遍历方法 - >"); Iterator<String> iter = list.iterator(); while (iter.hasNext()) { System.out.println(iter.next()); }} |
遍历时移除元素
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
package net.xsoftlab.baike;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class RemoveItemFromList { public static void main(String[] args) { List<String> list = new ArrayList<String>(); // 插入元素 list.add("list1"); list.add("list2"); list.add("list2"); list.add("list3"); // 实例化新的list防止因传递地址而达不到测试效果。 remove1(new ArrayList<String>(list)); remove2(new ArrayList<String>(list)); remove2_1(new ArrayList<String>(list)); remove3(new ArrayList<String>(list)); } public static void remove1(List<String> list) { System.out.print("第一种方法 - > "); try { for (String str : list) { if (str.equals("list2")) list.remove(str); } } catch (Exception e) { System.out.println("移除失败!"); } } public static void remove2(List<String> list) { System.out.print("第二种方法 - > "); for (int i = 0; i < list.size(); i++) { String str = list.get(i); if (str.equals("list2")) list.remove(str); } System.out.println(list); System.out.println("也有异常,可以用下面的方法避免。"); } public static void remove2_1(List<String> list) { System.out.print("第二种方法修正 - > "); for (int i = 0; i < list.size(); i++) { String str = list.get(i); if (str.equals("list2")) { list.remove(str); // 因移除了元素,位置发生偏移,需要重新对当前位置的元素进行判断。 i--; } } System.out.println(list); } public static void remove3(List<String> list) { System.out.print("第三种方法 - > "); Iterator<String> iter = list.iterator(); while (iter.hasNext()) { String str = iter.next(); if (str.equals("list2")) iter.remove(); } System.out.println(list); }} |
Java list的用法排序及遍历的更多相关文章
- JAVA中ArrayList用法
JAVA中ArrayList用法 2011-07-20 15:02:03| 分类: 计算机专业 | 标签:java arraylist用法 |举报|字号 订阅 Java学习过程中做题时 ...
- Java基础-数组常见排序方式
Java基础-数组常见排序方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 数据的排序一般都是生序排序,即元素从小到大排列.常见的有两种排序方式:选择排序和冒泡排序.选择排序的特 ...
- Java实现各种内部排序算法
数据结构中常见的内部排序算法: 插入排序:直接插入排序.折半插入排序.希尔排序 交换排序:冒泡排序.快速排序 选择排序:简单选择排序.堆排序 归并排序.基数排序.计数排序 直接插入排序: 思想:每次将 ...
- Java NIO.2 使用Files类遍历文件夹
在以前的Java版本中,如果要遍历某个文件夹下所有的子文件.子文件夹,需要我们自己写递归,很麻烦. 在Java7以后,我们可以NIO.2中的Files工具类来遍历某个文件夹(会自动递归). 大致用法: ...
- Java 的八种排序算法
Java 的八种排序算法 这个世界,需要遗忘的太多. 背景:工作三年,算法一问三不知. 一.八种排序算法 直接插入排序.希尔排序.简单选择排序.堆排序.冒泡排序.快速排序.归并排序和基数排序. 二.算 ...
- JAVA的continue用法
JAVA的continue用法: public class test{ public static void main(String [] args){ for(int i=0;i<=10;i ...
- Java Spring AOP用法
Java Spring AOP用法 Spring AOP Java web 环境搭建 Java web 项目搭建 Java Spring IOC用法 spring提供了两个核心功能,一个是IoC(控制 ...
- Java Spring IOC用法
Java Spring IOC用法 Spring IoC 在前两篇文章中,我们讲了java web环境搭建 和 java web项目搭建,现在看下spring ioc在java中的运用,开发工具为In ...
- java for 的用法总结
J2SE 1.5提供了另一种形式的for循环.借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象.本文介绍使用这种循环的具体方式,说明如何自行定义能被这样遍历的类 ...
随机推荐
- 清理Oracle安装目录里的一些日志信息
最近测试环境服务器上磁盘空间紧张,表空间里面的数据也不知道开发哪些需要哪些不需要,而且因为此测试库运行时间比较久远,起码有三年了.于是就从清理Oracle安装目录下的日志下手. 发现在一般这几个日志, ...
- HDFS--(HA)初始化与启动
1.启动zk 2.启动journalnode: hadoop-daemons.sh start journalnode 3.格式化zkfc--让在zookeeper中生成ha节点 ...
- IIS7 rename application or site
rename site 比较容易,在IIS里面就可以直接 rename,也可以用 cmd 的方式 1. 打开 cmd 2. cd C:\Windows\System32\inetsrv 3. appc ...
- IIS7 IIS7.5 IIS8.5 HTTP 错误 500.19 – Internal Server Error解决方案小记
今天配置IIS(win8.1 IIS8.5)的web.config出现如下错误: HTTP 错误 500.19 – Internal Server Error无法访问请求的页面,因为该页的相关配置数据 ...
- 2016-06-08:Windows中的bat脚本
涉及循环嵌套,启用变量延时,算术运算 @echo off setlocal enabledelayedexpansion %路径以及文件名等变量设置% set x264_exe=E:\demo\c++ ...
- MySQL 常用命令(持续更新)
停止启动MySQL服务 停止:net stop mysql启动:net start mysql 查看正在运行的线程 SHOW PROCESSLIST SHOW FULL PROCESSLIST 杀死线 ...
- XidianOJ 1182 Chinese Paladin – Qi’s troubles
题目描述 As we all know, Xiahou Jinxuan (Chinese Paladin 5 Prequel's protagonist) and Yue Jinzhao (Chine ...
- android_Activity之Button_OnClickListener
今天我们要讲的主要是四大组件之一Activity 什么是Android 的四大组件呢?接下来简单了解下. 1.Activity Activity就是我们应用程序的界面,主要用来跟我们的用户进行交互的 ...
- CUnit的用法
转自:http://blog.csdn.net/scucj/article/details/4385630/ CUnit下载地址: http://sourceforge.net/projects/cu ...
- asp.net GDI+绘制折线
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...