JAVA学习总结之List集合
2017-10-01 10:13
357 查看
List集合:
1.代表一个元素有序(默认元素的添加顺序),可重复的集合,集合中每个元素都有其对应的索引。
2.List判断两个对象相等只要通过equals()方法返回比较true即可.
注意:
当调用List的set(int index,Object element)方法来改变List集合指定索引处的元素时,指定元素的索引必须是List集合的用小索引。也就是说,set(int index,Object element)方法不会改变List集合的长度。
补充一下Lambda表达式:
Lambda表达式包含三部分:
1、一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法的参数
2、一个箭头符号:->
3、方法体,可以是表达式和代码块。
Java8为List集合增加了sort()和replaceAll()两个常用的默认方法,其中sort()方法需要一个Comparator对象来控制元素排序,程序可使用Lambda表达式来作为参数;
而replace()方法则需要一个UnaryOperator来替换所有集合元素,UnaryOperator也是一个函数式接口,因此程序也可以使用Lambda表达式作为参数.十里如下:
public class ListTest {
public static void main(String[] args) {
List books = new ArrayList();
books.add(new String("被窝是青春的坟墓"));
books.add(new String("解忧杂货店"));
books.add(new String("荆棘鸟"));
//使用目标类型为Comparator的Lambda表达式来替换List集合排序
books.sort((o1,o2)->((String)o1).length()-((String)o2).length());
System.out.println(books);
//使用目标类型为UnaryOperator的Lambda表达式来替换集合中的所有元素
//该Lambda表达式控制使用每一字符串的长度作为新的集合元素
books.replaceAll(ele->((String)ele).length());
System.out.println(books);
/*输出:
[荆棘鸟, 解忧杂货店, 被窝是青春的坟墓]
[3, 5, 8]
*/
}
}
ListIterator与普通的Iterator对比,可以发现ListIterator增加了向前迭代的功能(Itreator只能向后迭代),
而且ListIterator还可以通过add()方法想List集合添加元素(Iterator只能删除元素).
ListIterator用法实例如下:
public class ListIteratorTest {
public static void main(String[] args) {
String[] books= {
"被窝是青春的坟墓","解忧杂货店",
"荆棘鸟"
};
List bookList = new ArrayList();
for (int i = 0; i < books.length; i++) {
bookList.add(books[i]);
}
ListIterator lit = bookList.listIterator();
while(lit.hasNext()) {
System.out.println(lit.next());
System.out.println("----分割线----");
}
/*输出:
被窝是青春的坟墓
----分割线----
解忧杂货店
荆棘鸟
----分割线----
*/
System.out.println("====下面开始反向迭代===");
while(lit.hasPrevious()) {
System.out.println(lit.previous());
}
/*输出:
====下面开始反向迭代===
荆棘鸟
解忧杂货店
被窝是青春的坟墓
*/
}
}
1.代表一个元素有序(默认元素的添加顺序),可重复的集合,集合中每个元素都有其对应的索引。
2.List判断两个对象相等只要通过equals()方法返回比较true即可.
注意:
当调用List的set(int index,Object element)方法来改变List集合指定索引处的元素时,指定元素的索引必须是List集合的用小索引。也就是说,set(int index,Object element)方法不会改变List集合的长度。
补充一下Lambda表达式:
Lambda表达式包含三部分:
1、一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法的参数
2、一个箭头符号:->
3、方法体,可以是表达式和代码块。
Java8为List集合增加了sort()和replaceAll()两个常用的默认方法,其中sort()方法需要一个Comparator对象来控制元素排序,程序可使用Lambda表达式来作为参数;
而replace()方法则需要一个UnaryOperator来替换所有集合元素,UnaryOperator也是一个函数式接口,因此程序也可以使用Lambda表达式作为参数.十里如下:
public class ListTest {
public static void main(String[] args) {
List books = new ArrayList();
books.add(new String("被窝是青春的坟墓"));
books.add(new String("解忧杂货店"));
books.add(new String("荆棘鸟"));
//使用目标类型为Comparator的Lambda表达式来替换List集合排序
books.sort((o1,o2)->((String)o1).length()-((String)o2).length());
System.out.println(books);
//使用目标类型为UnaryOperator的Lambda表达式来替换集合中的所有元素
//该Lambda表达式控制使用每一字符串的长度作为新的集合元素
books.replaceAll(ele->((String)ele).length());
System.out.println(books);
/*输出:
[荆棘鸟, 解忧杂货店, 被窝是青春的坟墓]
[3, 5, 8]
*/
}
}
ListIterator与普通的Iterator对比,可以发现ListIterator增加了向前迭代的功能(Itreator只能向后迭代),
而且ListIterator还可以通过add()方法想List集合添加元素(Iterator只能删除元素).
ListIterator用法实例如下:
public class ListIteratorTest {
public static void main(String[] args) {
String[] books= {
"被窝是青春的坟墓","解忧杂货店",
"荆棘鸟"
};
List bookList = new ArrayList();
for (int i = 0; i < books.length; i++) {
bookList.add(books[i]);
}
ListIterator lit = bookList.listIterator();
while(lit.hasNext()) {
System.out.println(lit.next());
System.out.println("----分割线----");
}
/*输出:
被窝是青春的坟墓
----分割线----
解忧杂货店
荆棘鸟
----分割线----
*/
System.out.println("====下面开始反向迭代===");
while(lit.hasPrevious()) {
System.out.println(lit.previous());
}
/*输出:
====下面开始反向迭代===
荆棘鸟
解忧杂货店
被窝是青春的坟墓
*/
}
}
相关文章推荐
- Java学习总结(五)——(常用类,正则表达式,集合(List,Set) 迭代器)
- java 集合类(collection(list set) map)学习总结
- java集合总结-List/Set/Map/Queue
- 黑马程序员_Java第17天知识总结_集合框架的工具类_Collections_Arrays_将数组变成list集合_集合变数组_高级for循环_可变参数
- java集合List学习(结合源代码)
- [Java基础]List,Map集合总结
- Java基础第十四天学习日记_集合、List集合、Set集合
- Java分布式应用学习笔记04JDK的并发包的集合总结
- JAVA学习.JAVA集合类型Collection.List.ArrayList&LinkedList
- JAVA基础学习之String、StringBuffer、StringBuilder、基本数据类型的使用、整形进制转换、集合Collection、Vector、ArrayList、LinkedList、HashSet、TreeSet等(3)
- 黑马程序员java学习—集合框架List和Set
- JAVA基础学习之 Map集合、集合框架工具类Collections,Arrays、可变参数、List和Set集合框架什么时候使用等(4)
- Hibernate 集合属性List 的使用----Hibernate 学习笔记总结(一)
- java学习之路---集合(类集)---List
- CoreJava学习4——集合之List高级与算法
- Java学习总结之第十一章 Java集合
- java 集合框架学习总结
- Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
- java 集合类学习总结
- Java学习笔记-------集合List