您的位置:首页 > 编程语言 > Java开发

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());

        }

            /*输出:

                ====下面开始反向迭代===

                荆棘鸟

                解忧杂货店

                被窝是青春的坟墓

                */

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: