[集合]List
List
存取有序,有索引,可以重复
ArrayList去除集合中字符串的重复值(字符串的内容相同)
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add("a");
list.add("a");
list.add("b");
list.add("b");
list.add("b");
list.add("c");
list.add("c");
list.add("c");
list.add("c");
System.out.println(list);
ArrayList newList = getSingle(list);
System.out.println(newList);
}
/*
* 去除重复
* 1,返回ArrayList
* 2,参数列表ArrayList
*/
public static ArrayList getSingle(ArrayList list) {
ArrayList newList = new ArrayList(); //创建一个新集合
Iterator it = list.iterator(); //获取迭代器
while(it.hasNext()) { //判断老集合中是否有元素
String temp = (String)it.next(); //将每一个元素临时记录住
if(!newList.contains(temp)) { //如果新集合中不包含该元素
newList.add(temp); //将该元素添加到新集合中
}
}
return newList; //将新集合返回
}
通过分析源码,可以发现 contains()方法中也是用equals() 函数来判断的,而equals()方法,如果用来判断对象,会直接对比引用对象的地址,而不同对象的地址是不一样的,返回的结果总会是 true ,因此用来判断对象 要在 Person 类中重写 equals() 方法。
总结:
contains() 和 remove() 方法中都是用 equals()方法来进行对比的,所以如果集合中存储的是对象,要重写 equals() 方法
LinkedList 基本方法
* LinkedList 基本方法
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.add("e");
list.add("e");
list.add("e");
list.add("e");
list.addFirst("k");
list.addLast("z");
System.out.println(list);
System.out.pr intln(list.getFirst());
System.out.println(list.getLast());
System.out.println(list.removeLast());
System.out.println(list.getLast());
System.out.println(list.removeFirst());
System.out.println(list);
System.out.println(list.get()); //取得索引位置元素
三种迭代的能否删除(掌握)
* 普通for循环,可以删除,但是索引要--
* 迭代器,可以删除,但是必须使用迭代器自身的remove方法,否则会出现并发修改异常
* 增强for循环不能删除
Arrays工具类的asList()方法的使用(掌握)
* A:案例演示
* Arrays工具类的asList()方法的使用
* Collection中toArray(T[] a)泛型版的集合转数组 集合嵌套之ArrayList嵌套ArrayList(掌握)
* A:案例演示
* 集合嵌套之ArrayList嵌套ArrayList
好的 突然
[集合]List的更多相关文章
- java基础集合经典训练题
第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...
- .Net多线程编程—并发集合
并发集合 1 为什么使用并发集合? 原因主要有以下几点: System.Collections和System.Collections.Generic名称空间中所提供的经典列表.集合和数组都不是线程安全 ...
- 一起学 Java(三) 集合框架、数据结构、泛型
一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...
- 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)
建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...
- java基础_集合List与Set接口
List接口继承了Collection的方法 当然也有自己特有的方法向指定位置添加元素 add(索引,添加的元素); 移除指定索引的元素 remove(索引) 修改指定索引的元素 set ...
- Java基础Collection集合
1.Collection是所有集合的父类,在JDK1.5之后又加入了Iterable超级类(可以不用了解) 2.学习集合从Collection开始,所有集合都继承了他的方法 集合结构如图:
- 轻量级“集合”迭代器-Generator
Generator是PHP 5.5加入的新语言特性.但是,它似乎并没有被很多PHP开发者广泛采用.因此,在我们了解PHP 7对Generator的改进之前,我们先通过一个简单却显而易见的例子来了解下G ...
- Asp.net MVC 传递数据 从前台到后台,包括单个对象,多个对象,集合
今天为大家分享下 Asp.net MVC 将数据从前台传递到后台的几种方式. 环境:VS2013,MVC5.0框架 1.基本数据类型 我们常见有传递 int, string, bool, double ...
- 这些.NET开源项目你知道吗?.NET平台开源文档与报表处理组件集合(三)
在前2篇文章这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧 和这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,大伙热情高涨.再次拿出自己的私货,在.NET平台 ...
- python 数据类型 --- 集合
1. 注意列表和集合的区别 set 列表表现形式: list_1 = [1,3,4]; 集合表现形式:set_1= set() list_1 = [1,2,3,4,23,4,2] print(lis ...
随机推荐
- Django【第28篇】:Django Admin的相关知识
Django Admin的相关知识 一.面向对象复习 1.类的继承 class Base(object): def __init__(self,val): self.val = val def fun ...
- 35.ES6语法介绍——2019年12月24日
2019年12月24日16:22:24 2019年10月09日12:04:44 1. ES6介绍 1.1 新的 Javascript 语法标准 --2015年6月正式发布 --使用babel语法转换器 ...
- 25个Apache性能优化技巧推荐
25个Apache性能优化技巧推荐 Apache至今仍处于web服务器领域的霸主,无人撼动,没有开发者不知道.本篇文章介绍25个Apache性能优化的技巧,如果你能理解并掌握,将让你的Apache性能 ...
- python代码执行bash命令 -- python3 cook book
python代码执行bash命令相关 -- python3 cook book refer: https://python3-cookbook.readthedocs.io/zh_CN/latest/ ...
- java如何实现多继承
在java中,原则上是不允许多继承的,也就是类与类之间只可以单继承.那么,有没有办法,可以在不使用接口的情况下实现多继承呢? 答案是可以.使用内部类就可以多继承,严格来说,还不是实现多继承,但是这种 ...
- 事物 @Transactional
转载:http://www.cnblogs.com/kristain/articles/2038397.html 一.什么是事务 事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库 ...
- luogu 4147 玉蟾宫 悬线DP
Code: #include<bits/stdc++.h> using namespace std; #define setIO(s) freopen(s".in",& ...
- 【bozj2287】【[POJ Challenge]消失之物】维护多值递推
(上不了p站我要死了) Description ftiasch 有 N 个物品, 体积分别是 W1, W2, -, WN. 由于她的疏忽, 第 i 个物品丢失了. "要使用剩下的 N - 1 ...
- 【bzoj2502】清理雪道
题目描述: 滑雪场坐落在FJ省西北部的若干座山上. 从空中鸟瞰,滑雪场可以看作一个有向无环图,每条弧代表一个斜坡(即雪道),弧的方向代表斜坡下降的方向. 你的团队负责每周定时清理雪道.你们拥有一架直升 ...
- LINUX boot 内存不够
查看当前使用内核版本号.输入 uname -a 查看. 删除旧内核.输入命令: sudo apt-get remove linux-image- 接着按两下tab键,将显示所有的内核版本:把目前使用的 ...