Java语言学习-数据结构接口

1.Collection接口

常用的有两种:

1.List接口下常用实现类

List接口下常用实现类有那些?它们之间的区别?

ArrayList: 相当于一个数组,但是它是一个可变的数组.方便我们查询数据,增删操作不健全.

LinkedList:采用链表方式进行存储,方便我们修改元素数据., 对增删进行了加强.

Vector: 和ArrayList基本一样,但是它是线程安全的.

注意: List接口下包含重复元素.

2.Set接口下常用实现类

Set接口下常用实现类有那些?它们之间的区别?

HashSet: 无序的,不可重复的

TreeSet : 按自然顺序排列的,不可重复的,但是其保存的数据必须有办法比较

对List 和 Set接口进行代码验证:

package cn.pcl.List;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.ListIterator;

/**
 * 本段对list接口下实现类进行验证.
 */
public class TestList {

	public static void main(String[] args) {
		// ArrayList 验证: 1.添加数据 2.删除数据 3.修改数据 4.查询数据
		ArrayList<Integer> intArrList = new ArrayList<Integer>(); // 注意基本数据类型使用封装类进行泛型匹配
		// 1.添加数据 1876635
		intArrList.add(1); intArrList.add(7); intArrList.add(1, 8);
		intArrList.add(6); intArrList.add(6); intArrList.add(3); intArrList.add(5);
		// 2.删除数据 3
		intArrList.remove(5); // 使用位置删除
		// 3.修改数据 8-3 set(位置, 修改成什么)
		intArrList.set(1, 3);
		// 4.查询数据 8的位置 7的位置
		int i=-1;
		if((i=intArrList.indexOf(8)) != -1) {
			System.out.println("8首次出现的位置是: " + i);
		} else {
			System.out.println("没有查询到:8");
		}
		
		if((i=intArrList.indexOf(7)) != -1) {
			System.out.println("7首次出现的位置是: " + i);
		} else {
			System.out.println("没有查询到:7");
		}
		// 5.循环输出
		for(i=0; i<intArrList.size(); i++) {
			System.out.print(intArrList.get(i));
		}
		System.out.println();
		//-----------------------------------------ArrayList验证完成--------
		// LinkedList 验证: 1.添加数据 2.删除数据 3.修改数据 4.查询数据
		LinkedList<Integer> intLinked = new LinkedList<Integer>(intArrList); 
		// 1.添加数据 1
		intLinked.add(1);
		// 2.删除数据 6 使用元素值进行删除
		intLinked.remove((Integer)6);
		// 3.修改数据 位置5->9 set(位置, 修改成什么)
		intLinked.set(5, 9);
		// 4.查询5首次出现的位置
		if((i=intLinked.indexOf(5)) != -1) {
			System.out.println("5首次出现的位置是: " + i);
		} else {
			System.out.println("没有查询到:5");
		}
		// 5.循环输出
		ListIterator<Integer> inedx = intLinked.listIterator();
		while(inedx.hasNext()) {
			System.out.print(inedx.next());
		}
	}

}

set验证

package cn.pcl.set;

import java.util.TreeSet;
import java.util.Iterator;

public class TestTreeSet {

	public static void main(String[] args) {
		TreeSet<String> strTree = new TreeSet<String>();
		// 添加元素
		if(!strTree.add("A")){
			System.out.println("添加失败:A");
		}; 
		if(!strTree.add("B")){
			System.out.println("添加失败:B-1");
		}; 
		if(!strTree.add("C")){
			System.out.println("添加失败:C");
		}; 
		if(!strTree.add("B")){
			System.out.println("添加失败:B-2");
		}; 
		if(!strTree.add("BA")){
			System.out.println("添加失败:BA");
		}; 
		// 删除元素
		if( !strTree.remove("C")) { System.out.println("不存在这样的元素");};
		// 没有修改指定元素啊
		// 查询数据,floor测试
		System.out.println(strTree.floor("B"));
		// 循环遍历
		 Iterator<String> iterator = strTree.iterator();
		 while(iterator.hasNext()) {
			 System.out.print(iterator.next());
		 }
	}

}


2.Map接口

以后再写到看教程的时间了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值