`
qing_gee
  • 浏览: 118617 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

Java中需要注意的一些案例

    博客分类:
  • Java
阅读更多

在编写Java代码中,我们或多或少会遇到下面的一些案例,对于这些情况,我们怎么做?那么接下来我介绍一些方法,大家可以看一下:

1.判断数组{"a","b","c","d"}是否包含有"a",见以下代码,你喜欢用哪一种呢,我推荐使用ifcontainsByArrays,因为该方法内部更严谨一些。

public static void main(String[] args) {
		String [] strs = {"a","b","c","d"};
		
		Test t = new Test();
		System.out.println(t.ifcontains(strs, "a"));
		
		System.out.println(t.ifcontainsByArrays(strs, "a"));
	}
	
	public boolean ifcontains(String [] strs, String str) {
		for (String s : strs) {
			if (s.equals(str)) {
				return true;
			}
		}
		return false;
	}
	
	public boolean ifcontainsByArrays(String [] strs, String str) {
		// 注意:Arrays.asList()方法返回的是 java.util.Arrays.ArrayList而不是java.util.ArrayList
		return Arrays.asList(strs).contains(str);
	}

 2.在循环中删除一个列表中的元素,见如下代码,我建议使用removeByIterator方法,因为不需要再创建新的list。

public static void main(String[] args) {
		List<String> list = new ArrayList<String>(Arrays.asList("a", "b", "c", "d"));
		List<String> list1 = new ArrayList<String>(Arrays.asList("a", "b", "c", "d"));
		
		Test1 t = new Test1();
		for (String s : t.removeByIterator(list, "c")) {
			System.out.print(s);
		}
		System.out.println();
		System.out.println("----------------------------");
		for (String s : t.removeByNewList(list1, "c")) {
			System.out.print(s);
		}
	}
	
	public List<String> removeByNewList(List<String> list, String str) {
		List<String> newList = new ArrayList<String>();
		for (String s : list) {
			if (!s.equals(str)) {
				newList.add(s);
			}
		}
		
		return newList;
	}
	
	public List<String> removeByIterator(List<String> list, String str) {
		Iterator<String> iterator = list.iterator();
		while (iterator.hasNext()) {
			String s = iterator.next();
			if (s.equals(str)) {
				// 移除迭代器返回的元素
				iterator.remove();
			}
		}
		
		return list;
	}

 暂时先列举两个,有时间的话,继续

 

2
2
分享到:
评论
6 楼 qing_gee 2014-07-06  
cs6641468 写道
ArrayList本来就用remove方法,从后向前,发现相同的remove掉就行了。 干啥还要借助Iterator



没有认真看你的回复,sorry,谢谢的你提议。
5 楼 qing_gee 2014-07-06  
laozhao 写道
fly_宇光十色 写道
qing_gee 写道
cs6641468 写道
ArrayList本来就用remove方法,从后向前,发现相同的remove掉就行了。 干啥还要借助Iterator

你自己动手写写代码就知道你的想法正确不

从后向前没有问题,如果是从前往后的话会出错


同意,这样OK。好久没写了,不知道有没有语法错误。大致这样。

public static void main(String[] args) {
List<String> list = new ArrayList<String>(Arrays.asList("a", "b", "c", "d"));
List<String> list1 = new ArrayList<String>(Arrays.asList("a", "b", "c", "d"));

Test1 t = new Test1();
for (String s : t.removeByItSelf(list, "c")) {
System.out.print(s);
}
}

public List<String> removeByItSelf(List<String> list, String str) {
int i = list.size;
for (i,i>=0,i--) {
if (!s.equals(str)) {
list.remove(s);
}
}

return newList;
}




楼主知错就改,我本来以为你说的是顺序的remove,如果倒序remove的话,的确list的大小改变了也无所谓。赞。
具体写法参考以下

List<String> list = new ArrayList<String>(Arrays.asList("a", "b", "c", "d"));
int size = list.size();
for (int i = size - 1; i >= 0; i--) {
if (list.get(i).equals("c")) {
list.remove(i);
}
}
4 楼 laozhao 2014-07-04  
fly_宇光十色 写道
qing_gee 写道
cs6641468 写道
ArrayList本来就用remove方法,从后向前,发现相同的remove掉就行了。 干啥还要借助Iterator

你自己动手写写代码就知道你的想法正确不

从后向前没有问题,如果是从前往后的话会出错


同意,这样OK。好久没写了,不知道有没有语法错误。大致这样。

public static void main(String[] args) {
List<String> list = new ArrayList<String>(Arrays.asList("a", "b", "c", "d"));
List<String> list1 = new ArrayList<String>(Arrays.asList("a", "b", "c", "d"));

Test1 t = new Test1();
for (String s : t.removeByItSelf(list, "c")) {
System.out.print(s);
}
}

public List<String> removeByItSelf(List<String> list, String str) {
int i = list.size;
for (i,i>=0,i--) {
if (!s.equals(str)) {
list.remove(s);
}
}

return newList;
}

3 楼 fly_宇光十色 2014-07-04  
qing_gee 写道
cs6641468 写道
ArrayList本来就用remove方法,从后向前,发现相同的remove掉就行了。 干啥还要借助Iterator

你自己动手写写代码就知道你的想法正确不

从后向前没有问题,如果是从前往后的话会出错
2 楼 qing_gee 2014-07-04  
cs6641468 写道
ArrayList本来就用remove方法,从后向前,发现相同的remove掉就行了。 干啥还要借助Iterator

你自己动手写写代码就知道你的想法正确不
1 楼 cs6641468 2014-07-04  
ArrayList本来就用remove方法,从后向前,发现相同的remove掉就行了。 干啥还要借助Iterator

相关推荐

    一些大佬的经典Java简历及真实项目及个人技能和职责经典描述案例参考

    分享一些大佬的经典简历(阿里P7简历+12年老程序员简历)共10份,分别是不同工作年限的,以及《写简历应注意事项汇总.pdf》等资源内容。1、简历是面试的敲门砖,好的简历让HR和面试官眼前一亮,从而让你有了面试的...

    Java课程设计案例精编:Java课程设计案例精编.ISO

    (1) 本光盘提供了书中案例的Java源代码文件及编译发布后的可执行文件。 (2) 读者可以使用文本编辑工具(例如Windows中的记事本)或Java编辑工具来打开和编辑Java源代码文件。 (3) 文件夹图标后的数字编号为章号。例如...

    Java课程设计案例精选

    (1)提供了书中案例的Java源代码文件及编译发布后的可执行文件。 (2)读者可以使用文本编辑工具(例如Windows中的记事本)或Java编辑工具来打开和编辑Java源代码文件。 (3)文件夹图标后的数字编号为章号。例如CH03,为第...

    java案例代码规范

    详细介绍了java案例编程中的一些去要注意的代码规范事项

    Java 高并发多线程编程系列案例代码

    Java 高并发多线程编程系列案例代码 & 教程 & 面试题集锦! !! 包括但不限于线程安全性, atomic包下相关类、CAS原理、Unsafe类、synchronized关键字等的使用及注意事项,

    《JAVA数据库系统开发案例精选》之图书馆管理系统

    JAVA数据库系统开发案例精选项目之一 本书中所有实例都是在Windows 2000 Server操作系统下开发的,程序测试环境为Windows 2000 Server。用户在Windows 2000 Server下正确配置程序运行所需的环境后,完全可以使用本...

    应用示例-Java设计模式及应用案例(第2版)-[共11页].pdf

    180 Java 设计模式及应用案例(第 2 版) public CellContext2(String strPhone, String name, float price){ this.strPhone = strPhone; this.name = name; this.price = price; } public int getMark(){ int mark ...

    Java开发实战宝典(李钟蔚)赠的额外案例代码及电子书

    Java开发实战宝典(李钟蔚)赠的额外案例代码及电子书。注意:不是Java开发实战宝典的电子书,是光盘中赠送的额外的案例及所赠的案例的电子书。

    Java语言要注意的问题及其实用案例分析,直接拿走吧

    10个Java案例,涵盖了Java的不同知识点: 简单计算器:编写一个程序,接收用户的两个数字输入,然后根据用户选择的操作(加、减、乘、除)进行计算并输出结果。 数组排序和搜索:编写一个程序,接收一组数字输入,...

    java中线程的应用例子

    这是给开发者提供的一个最基本的java中线程的开发案例,看了就会,学了就懂的,但要注意线程使用的一些问题,很多网站都有,要细细看。

    Java面试宝典合集-八股文-自我介绍-案例

    java面试自我介绍 涵盖通用案例.docx java面试逻辑思维题txt Java面试问题集,pdf 关于Java面试知识点pdf 通用面试技巧和注意事项,pdf 阿里巴巴 iava 研发成功笔面试总结.doc 面试技巧之自我介绍大全系列.pdf

    BBS论坛管理(Java EE项目案例)

    Java平台:JDK 1.5。 Web服务器:Tomcat v 5.5.23,下载地址:http://tomcat.apache.org/。 数据库服务器:MySQL v 5.0.45,下载地址:http://www.mysql.com/。 开发平台:Eclipse SDK v 3.2.2,下载地址:...

    JAVA经典标准规范SSH案例源码

    1、首先将项目mywork3.rar解压,导入到myeclipse中,注意修改applicationContext.xml 中用户名、密码,jdk使用1.6以上的就可以。 2、在mysql中新建数据库mydb 3、导入SQL文件 user.sql 4、启动项目,输入...

    个人金融管理应用案例Java代码、建议及注意项.docx

    Java作为一种静态类型、多范式的编程语言,不仅在企业级应用开发中占据了重要的地位,而且也适用于Android应用开发、云应用和各种网络应用。精通Java编程需要持续的实践和学习,但它为开发者提供了一个强大而灵活的...

    Java ThreadLocal类应用实战案例分析

    主要介绍了Java ThreadLocal类应用,结合具体案例形式分析了java ThreadLocal类的功能、原理、用法及相关操作注意事项,需要的朋友可以参考下

    公告管理系统(Java EE项目案例)

    Java平台:JDK 1.5。 Web服务器:Tomcat v 5.5.23,下载地址:http://tomcat.apache.org/。 数据库服务器:MySQL v 5.0.45,下载地址:http://www.mysql.com/。 开发平台:Eclipse SDK v 3.2.2,下载地址:...

    JAVA学生成绩管理案例源码 JAVAXSCJGLAL.rar

    JAVA学生成绩管理案例源码 源码描述: 一、源码介绍 JAVA学生成绩管理案例源码使用servlet,mysql数据库实现。 二、主要功能 学院介绍,教师管理,学生管理,修改密码。 三、注意事项 开发环境为eclipse,数据库...

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    面试题包含了不同技术层面的面试问题,同时也能对一些没有面试开发经验的小白给予不可估量的包装, 让你的薪水绝对翻倍, 本人亲试有效.Java面试题84集、java面试专属及面试必问课程,所有的面试题有视屏讲解, 解答方案....

    JDOM(java)使用详解及实例

    DOM的缺点主要是来自于由于Dom是一个接口定义语言(IDL),它的任务是在不同语言实现中的一个最低的通用标准,并不是为JAVA特别设计的。JDOM的最新版本为JDOM Beta 9。最近JDOM被收录到JSR-102内,这标志着JDOM成为了...

Global site tag (gtag.js) - Google Analytics