大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Java面向對象
Java異常
Java數組
Java常用類
Java集合
Java IO流
Java線程
Java反射
Socket編程
Java注解開發
Java GoF設計模式
HashMap
Java內存模型
Java線性表

Java中List集合

List集合的特點:存儲的元素是有序/可重復的。

List集合為每個元素指定了一個索引值, 主要增加了針對索引值的操作。

void add(int index, E element) 在當前集合的index位置插入元素element
boolean addAll(int index, Collection<? extends E> c) 把集合c中的所有元素插到當前集合的index位置
E get(int index) 返回index位置的元素
int indexOf(Object o) 返回元素o在集合中第一次出現的位置
int lastIndexOf(Object o) 返回元素o在集合中最后一次出現的位置
ListIterator<E> listIterator() 返回List迭代器
E remove(int index) 刪除指定位置的元素
E set(int index, E element) 修改指定位置的元素
default void sort(Comparator<? super E> c) 排序
List<E> subList(int fromIndex, int toIndex) 返回[frominde, toIndex)范圍內的子列表
package com.wkcto.chapter05.list;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * 演示List的基本操作
 * @author 蛙課網
 *
 */
public class Test01 {
	public static void main(String[] args) {
		//1)創建List集合, List接口引用需要賦值實現類對象
		List<String> list = new ArrayList<>();
		
		//2)添加元素
		list.add("gg");
		list.add("jj");
		list.add("dd");
		list.add("mm");
		list.add("jj");
		
		//3)直接打印, List存儲元素的順序就是添加的順序, 可以存儲重復的數據
		System.out.println( list ); 		//[gg, jj, dd, mm, jj]

		//4) 判斷
		System.out.println( list.size() );
		System.out.println( list.isEmpty());
		System.out.println( list.contains("jj"));
		
		//5) 刪除
		list.remove("gg"); 		//刪除第一個匹配的元素
		System.out.println( list ); 		//[jj, dd, mm, jj]
		
		//6) 遍歷
		for (String string : list) {
			System.out.print( string + "\t");
		}
		System.out.println( );
		
		//7)迭代遍歷
		Iterator<String> iterator = list.iterator();
		while (iterator.hasNext()) {
			String string = (String) iterator.next();
			System.out.print(string + "\t");
		}
		System.out.println( );
		
		//8)迭代刪除
		iterator = list.iterator(); 		//重新獲得迭代器對象
		while (iterator.hasNext()) {
			String string = (String) iterator.next();
			if ("jj".equals(string)) {
				iterator.remove();
			}
		}
		System.out.println( list );
		
	}
}
package com.wkcto.chapter05.list;

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

/**
 * 演示List集合新增的操作
 * @author 蛙課網
 *
 */
public class Test02 {

	public static void main(String[] args) {
		// 1)創建List集合,
		List<String> list = new ArrayList<>();

		// 2)添加元素
		list.add("gg");
		list.add("jj");
		list.add("dd");
		list.add("mm");
		list.add("jj");

		// 3)直接打印, 
		System.out.println(list);		//[gg, jj, dd, mm, jj]
		
		//4) 在指定索引值的位置添加
		list.add(0, "MM");
		list.add(list.size(), "DD");
		System.out.println(list);		//[MM, gg, jj, dd, mm, jj, DD]
		//遇到索引值的位置,需要注意索引值不能越界
//		list.add(20 , "xxx");  		//java.lang.IndexOutOfBoundsException
		
		//5)刪除指定位置的元素
		list.remove(0);
		System.out.println( list ); //[gg, jj, dd, mm, jj, DD]
		list.remove(list.size()-1);
		System.out.println( list ); //[gg, jj, dd, mm, jj]
		
		//6)返回指定位置的元素
		System.out.println( list.get(0));
		System.out.println( list.get(list.size()-1));
		
		//7)修改指定位置的元素
		list.set(0, "JJ");
		System.out.println( list );  //[JJ, jj, dd, mm, jj]
		
		//8)返回指定范圍的子列表, 注意subList并沒有生成新的List列表 ,而是返回原有List列表的一個視圖
		List<String> sublist = list.subList(0, 3);
		System.out.println( sublist );  		//[JJ, jj, dd]
		//修改sublist子列表
		sublist.add("DD");
		sublist.set(0, "jj");
		System.out.println( sublist );  		//[jj, jj, dd, DD]
		//對subList進行的修改實際上就是對list進行修改
		System.out.println( list ); 			//[jj, jj, dd, DD, mm, jj]
		
		//9) 返回指定元素在列表中第一次出現的位置
		System.out.println( list.indexOf("jj"));
		System.out.println( list.lastIndexOf("jj"));
		
		//10) ListIterator迭代
		// ListIterator繼承了Iterator
		ListIterator<String> listIterator = list.listIterator();
		while (listIterator.hasNext()) {
			String string = (String) listIterator.next();
			System.out.print( string + "\t");
		}
		System.out.println();
		//經過上個while循環后,listIterator游標指向最后,ListIterator還可以向前迭代
		while( listIterator.hasPrevious() ){
			String str = listIterator.previous();
			System.out.print( str + "\t");
		}
		System.out.println();
		//ListIterator不僅可以刪除元素,還可以修改/添加元素
		while (listIterator.hasNext()) {
			String string = (String) listIterator.next();
			if (string.equals("mm")) {
				listIterator.remove();  	//刪除
			}else if ( "jj".equals(string)) {
				listIterator.add("Dd");
			}else if ("dd".equals(string)) {
				listIterator.set("DD");
			}
		}
		System.out.println( list ); 	//[jj,Dd , jj, Dd, DD, DD, jj, Dd]
	}

}
package com.wkcto.chapter05.list;

import java.util.ArrayList;
import java.util.List;

/**
 * List集合存儲自定義類型數據
 * 	注意List集合的remove(Object)/contains(Object)方法會調用對象的equals()方法, 如果是自定義需要重寫equals()方法 
 * @author 蛙課網
 *
 */
public class Test03 {

	public static void main(String[] args) {
		//創建List集合,存儲Person對象
		List<Person> list = new ArrayList<>();
		
		//添加元素
		list.add(new Person("lisi", 18));
		list.add(new Person("feifei", 28));
		list.add(new Person("zhang", 33));
		list.add(new Person("yong", 35));
		
		System.out.println( list );
		
		Person feifei = new Person("feifei", 28);
		System.out.println( list.contains(feifei));
		
		list.remove(feifei);
		System.out.println( list );
	}

}
package com.wkcto.chapter05.list;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
/**
 * List集合排序
 * 	sort(Comparator)
 * @author 蛙課網
 *
 */
public class Test04 {

	public static void main(String[] args) {
		//創建List集合,存儲Person對象
		List<Person> list = new ArrayList<>();
		
		//添加元素
		list.add(new Person("lisi", 18));
		list.add(new Person("feifei", 28));
		list.add(new Person("zhang", 33));
		list.add(new Person("yong", 35));

		//打印輸出的順序就是添加的順序
		System.out.println( list );
		//[Person [name=lisi, age=18], Person [name=feifei, age=28], Person [name=zhang, age=33], Person [name=yong, age=35]]

		//對List集合中的元素排序, 想要對List集合中的Person對象按照年齡降序排序
		//調用方法時,傳遞Comparator的匿名內部類對象, 通過泛型指定比較對象的數據類型
		list.sort(new Comparator<Person>() {
			//在匿名內部類重寫接口的抽象方法
			@Override
			public int compare(Person o1, Person o2) {
				//在compare方法中指定比較規則 , 按年齡降序
				return o2.age - o1.age;   //如果o1的年齡大返回負數, o2年齡大返回正數
//				return o1.age - o2.age;   //如果o1的年齡大返回正數, o2年齡大返回負數
			}
		});
		System.out.println( list );
		
		//對List排序, 根據姓名升序
		list.sort(new Comparator<Person>() {
			@Override
			public int compare(Person o1, Person o2) {
//				return o1.name.compareTo(o2.name); 	//姓名升序
				return o2.name.compareTo(o1.name); 	//姓名降序
			}
		});
		System.out.println(list);
	}

}
全部教程
主站蜘蛛池模板: 99在线观看视频免费 | 亚洲日产| 久久久久青草 | 亚洲二区在线视频 | 69精品久久久久 | 日日爽爽 | 在线视频一区二区日韩国产 | 黄色影院视频 | 日本 亚洲 欧美 | 国产第一区二区三区在线观看 | 久草午夜 | 国产婷婷色一区二区三区 | 中国女人内谢69xxxxx高清 | 欧美区国产区 | 国产亚洲综合成人91精品 | 999久久狠狠免费精品 | 色欧美在线视频 | 国产一级特黄aa毛片 | 九九99九九在线精品视频 | 狠狠干夜夜操 | 狠狠色伊人亚洲综合第8页 狠狠色综合久久丁香婷婷 狠狠色综合久久婷婷 | 中文字幕免费在线 | 欧美男女爱爱视频 | 久久密 | 精品一区二区三区四区乱码90 | a级毛片高清免费视频 | 日韩精品麻豆 | 欧美日本一二三区 | 国内精品久久久久久中文字幕 | 美女天天干 | 福利视频专区 | 97精品在线 | 亚洲欧美自拍一区 | 男人的天堂在线视频 | 久久夜夜操妹子 | 免费国产视频 | 女人18特级一级毛片免费视频 | 久草视频免费在线看 | 国产视频一区二区三区四区 | 精品国产一区二区三区在线观看 | 奇米网第四色 |