初学java之util

List:

//不能排序,可以有重复。
import java.util.*;
public class Main {
	static Scanner cin = new Scanner(System.in);
	static List <Integer> list = new LinkedList<Integer>();
	public static void main(String[] args){
		int n = cin.nextInt();
		while(n-->0) {
			list.add(cin.nextInt());//输入
		}
		System.out.println(list.get(3));
		list.remove(2);
//		 forEach 循环
		for (int x:list) {
			System.out.print(x+" ");
		}
		System.out.println();
		for (int i = 0; i < list.size();i++) {
			System.out.print(list.get(i)+" ");
		}
		System.out.println();
/*
 * 测试样例
5
2 3 5 0 1
0
2 3 0 1 
2 3 0 1
*/
	}
}

Set:

//TreeSet 是有序  从小到大   唯一但是HashSet我还不确定
import java.util.*;
public class Main {
	static Scanner cin = new Scanner(System.in);
	static Set<String> set1 = new TreeSet<String>();
	static Set<String> set2 = new HashSet<String>();
	public static void main(String[] args){
		int n = cin.nextInt();
		for (int i = 0; i < n;i++) {
			set1.add(cin.next());//输入
		}
//		for (int i = 0; i < n;i++) {
//			set2.add(cin.next());
//		}
		for (String x:set1) {
			System.out.print(x+" ");
		}
//		for (String x:set2) {
//			System.out.println(x+" ");
//		}
		System.out.println();
	}
/*
5
c d a b a
a b c d 
*/
}

Map<key-value> :

// Map<key-value>
//TreeMap 按照键值从小到大自动排序  HashMap 还有点迷
import java.util.*;
public class Main {
	static Scanner cin = new Scanner(System.in);
	static Map<String,Integer> map = new TreeMap<String,Integer>();
	static Map<String,Integer> map1 = new HashMap<String,Integer>();
	public static void main(String[] args){
		int n = cin.nextInt();
		while(n-->0) {
			map.put(cin.next(), cin.nextInt());
			//get()通过键来获取对应的值
		}
//			System.out.println(map.get("xx"));
////			遍历map
////		1.forEach
//			Set<Map.Entry<String, Integer> >set = map.entrySet();
//			for (Map.Entry<String, Integer> e:set) {
//				System.out.println(e.getKey()+" "+e.getValue());
//			}
			/*
			 3
             xx 1
             cc 2
			 aa 3
             1   //System.out.println(map.get("xx"));
             aa 3
             cc 2
             xx 1
             */
			//2.iterator 通过迭代器遍历集合
//			Collection<Integer> c = map.values();
//			Iterator<Integer> i = c.iterator();
//			while(i.hasNext()) {
//				System.out.println(i.next());
//			}
			/*
			 * 测试样例
			 3
             c 1
             b 3
             a 4
             4
             3
             1
             */
//			//3.推荐 利用keyset 集合遍历map
//			Set<String> key = map.keySet();
//			for(String k:key) {
//				System.out.println(k+": "+map.get(k));
//			}
			/*
			 3
             xx 1
             cc 2
             aa 3
             aa: 3
             cc: 2
             xx: 1
             */
////			//4.keyset iterator
//		    Set<String> key = map.keySet();
//			Iterator <String> it = key.iterator();
//			while(it.hasNext()) {
//				String s = it.next();//我觉得这样写也行
//				//学长这样写的String s = (String) it.next();
//				System.out.println(s+": " + map.get(s));
//			}
			/*
			 3
            xx 1
            cc 2
            aa 3
            aa: 3
            cc: 2
            xx: 1
            */
	}
}

Queue 先进先出 PriorityQueue按优先级自动排列(从小到大)

import java.util.*;
public class Main {
	static Scanner cin = new Scanner(System.in);
	static 	PriorityQueue<Integer> qq = new PriorityQueue<Integer>();//优先队列
	static 	Queue<Integer> q = new LinkedList<Integer>();//普通队列,先进先出
	public static void main(String[] args){
		int n = cin.nextInt();
		int x;
		while(n-->0) {
			x=cin.nextInt();
			q.add(x);
		}
		//forEach 遍历集合
		for(int e:q) {
			System.out.print(e+" ");
		}
		System.out.println();
		//size() 返回队列中的元素个数
		System.out.println(q.size());
		//peek() 返回队首元素
		System.out.println(q.peek());
		//poll 移除队列首元素,同时返回首元素的值
		System.out.println(q.poll());
		while(!q.isEmpty()) {
			System.out.print(q.poll()+" ");
		}
		System.out.println();
		System.out.println(q.size());
	}
/*
 * 普通队列测试样例
5
3 4 6 5 2
3 4 6 5 2 
5
3
3
4 6 5 2 
0
*/
//		int n = cin.nextInt();
//		int x;
//		while(n-->0) {
//			x=cin.nextInt();
//			qq.add(x);
//		}
//		//forEach 遍历集合
//		for(int e:qq) {
//			System.out.print(e+" ");//不按照从小到大输出
//		}
//		System.out.println();
//		//size() 返回队列中的元素个数
//		System.out.println(qq.size());
//		//peek() 返回队首元素
//		System.out.println(qq.peek());
//		//poll 移除队列首元素,同时返回首元素的值
//		System.out.println(qq.poll());
//		while(!qq.isEmpty()) {
//			System.out.print(qq.poll()+" ");//按照从小到大输出
//		}
//		System.out.println();
//		System.out.println(qq.size());
//	}
/*
 * 优先队列测试样例
5
3 4 6 5 2
2 3 6 5 4 
5
2
2
3 4 5 6 
0
*/
}

Stack: 后进先出

import java.util.*;
public class Main {
	static Scanner cin = new Scanner(System.in);
	static 	Stack<Integer> s = new Stack<Integer>();
	public static void main(String[] args){
		int n = cin.nextInt();
		while(n-->0) {
			int x = cin.nextInt();
			s.push(x);
		}
		//输出栈内元素个数
		System.out.println(s.size());
		//输出栈顶元素
		System.out.println(s.peek());
		//弹出栈顶元素,也就是删除栈顶元素,并且返回栈顶元素的值
		System.out.println(s.pop());
		//输出坐标为2的元素,坐标从0开始
		System.out.println(s.get(2));
		while(!s.isEmpty()){
			System.out.print(s.pop()+" ");
		}
		System.out.println();
		System.out.println(s.size());
	}
/*
5
3 4 2 1 5
5
5
5
2
1 2 4 3 
0
*/
}

Vector:

import java.util.*;
public class Main {
	static Scanner cin = new Scanner(System.in);
	static 	Vector<Integer> v = new Vector<Integer>();
	public static void main(String[] args){
		int n=cin.nextInt();
		while(n-->0) {
			int x=cin.nextInt();
			v.add(x);//输入
		}
		for(int i = 0; i < v.size();i++) {
			System.out.print(v.get(i)+" ");
		}
		System.out.println();
		System.out.println(v.remove(2));//移除下标为2的元素,下标从0开始, 并且返回该元素
		for(int i = 0; i < v.size();i++) {
			System.out.print(v.get(i)+" ");
		}
		System.out.println();
		while(!v.isEmpty()){
			System.out.print(v.remove(0)+" ");
		}
		System.out.println();
		System.out.println(v.size());//输出元素个数
	}
	/*
	 *测试样例
5
3 1 4 5 2
3 1 4 5 2 
4
3 1 5 2 
3 1 5 2 
0
*/
}

 

全部评论

相关推荐

会飞的猿:我看你想进大厂,我给你总结一下学习路线吧,java语言方面常规八股要熟,那些java的集合,重点背hashmap八股吧,jvm类加载机制,运行时分区,垃圾回收算法,垃圾回收器CMS、G1这些,各种乐观锁悲观锁,线程安全,threadlocal这些。在进阶一些的比如jvm参数,内存溢出泄漏排查,jvm调优。我这里说的只是冰山一角,详细八股可以去网上找,这不用去买,都免费资源。mysql、redis可以去看小林coding,我看你简历上写了,你一定要熟,什么底层b+树、索引结构、innodb、mvcc、undo log、redo log、行级锁表级锁,这些东西高频出现,如果面试官问我这些我都能笑出来。消息队列rabbitmq也好kafka也好,学一种就行,什么分区啊副本啊确认机制啊怎么保证不重复消费、怎么保证消息不丢失这些基本的一定要会,进阶一点的比如LEO、高水位线、kafka和rocketmq底层零拷贝的区别等等。计算机网络和操作系统既然你是科班应该理解起来问题不大,去看小林coding这两块吧,深度够了。spring boot的八股好好看看吧,一般字节腾讯不这么问,其他的java大厂挺爱问的,什么循环依赖啥的去网上看看。数据结构的话科班应该问题不大,多去力扣集中突击刷题吧。项目的话其实说白了还是结合八股来,想一想你写的这些技术会给你挖什么坑。除此之外,还有场景题、rpc、设计模式、linux命令、ddd等。不会的就别往简历上写了,虽然技术栈很多的话好看些,但背起来确实累。总结一下,多去实习吧,多跳槽,直到跳到一个不错的中厂做跳板,这是一条可行的进大厂的路线。另外,只想找个小厂的工作的话,没必要全都照这些准备,太累了,重点放在框架的使用和一些基础八股吧。大致路线就这样,没啥太多难度,就是量大,你能达到什么高度取决于你对自己多狠,祝好。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务